如何解决尽管是日期格式,但从 ymd 到 mdy
编辑:已被告知 lubridate 不进行任何转换。
我有一个非常简单的变量,其 YMD 日期为 chr 格式,但 lubridate::mdy()
拒绝将其转换为 mdy(如果这不是 mdy 应该做的,那么请建议如何使用 { {1}} 更改数据顺序)。我截断它以摆脱时间,并且我可以将 as_date 应用到截断的版本而不会出错,所以我最终得到了六个 Date 级别:
lubridate
但是任何转换为 . n percent
2020-05-20 6 0.0400000
2020-05-21 19 0.1266667
2020-05-25 45 0.3000000
2020-05-26 47 0.3133333
2020-05-27 21 0.1400000
2020-06-04 12 0.0800000
after as_date 的尝试都已经使用 mdy()
实现了
lubridate
怎么会这样?我翻遍了之前的 Warning message: All formats failed to parse. No formats found.
篇博文,但不明白为什么简单的格式更改总是失败。
我已经尝试过 base 和 tidyverse 版本
lubridate
然后他们转向 NA
原始数据 test$StartDate2 <- mdy(test$StartDate2)
被截断为 test$StartDate: chr [1:150] "2020-05-25 16:11" ...
然后通过 test$StartDate2: chr [1:150] "2020-05-25" "2020-05-27"
仍然没有被 test$StartDate2 <- as_date(test$StartDate2)
mdy()
解决方法
所有 lubridate
函数(mdy
或 ymd
或任何其他)都用于将值从字符类型更改为日期类型。日期类型只能以一种形式表示,即 YYYY-MM-DD
。如果您想要任何其他格式的日期,那么您可能需要具有字符类型的值。要以其他形式获取数据,您可以使用 format
(而不是 mdy
)。
library(dplyr)
test %>% mutate(StartDate3 = format(StartDate2,'%m-%d-%Y'))
# StartDate StartDate2 StartDate3
#1 2020-05-25 16:11 2020-05-25 05-25-2020
#2 2020-05-27 6:55 2020-05-27 05-27-2020
#3 2020-05-25 16:41 2020-05-25 05-25-2020
#4 2020-05-27 5:58 2020-05-27 05-27-2020
#5 2020-05-26 1:28 2020-05-26 05-26-2020
#6 2020-05-25 16:51 2020-05-25 05-25-2020
#7 2020-05-26 21:11 2020-05-26 05-26-2020
#8 2020-05-25 16:08 2020-05-25 05-25-2020
#9 2020-05-25 14:38 2020-05-25 05-25-2020
#10 2020-05-26 21:56 2020-05-26 05-26-2020
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。