为什么 lubridate 不能在 tbl_df 中转换日期?
Why can't lubridate convert dates in a tbl_df?
我有一个名为 x
的变量,它是这样的:
x <- structure(list(Time = c("2002-05-07 21:00", "2002-05-08 21:00",
"2002-05-09 21:00", "2002-05-10 21:00",
"2002-05-11 21:00", "2002-05-13 21:00",
"2002-05-14 21:00", "2002-05-15 21:00",
"2002-05-16 21:00", "2002-05-17 21:00")),
.Names = "Time", class = c("tbl_df", "data.frame"),
row.names = c(NA, -10L))
现在,我想将 x
中的字符串转换为日期,因为 x[1,1] %>% lubridate::ymd_hm()
给出了单个元素的预期结果,我认为以下方法可以解决问题:
x %>% lubridate::ymd_hm()
但它不起作用(结果为 NA)并且我收到以下警告:
Warning message:
All formats failed to parse. No formats found.
为什么 x %>% lubridate::ymd_hm()
没有按我预期的方式工作,我该怎么做才能获得我想要的结果?
函数 mutate
有效。
x %>% mutate(Time = ymd_hm(Time))
这成功了(有一个我不明白的警告,但我怀疑该对象的行名可能与它有关。):
x %>% lubridate::ymd_hm(.$Time)
[1] NA "2002-05-07 21:00:00 UTC" "2002-05-08 21:00:00 UTC"
[4] "2002-05-09 21:00:00 UTC" "2002-05-10 21:00:00 UTC" "2002-05-11 21:00:00 UTC"
[7] "2002-05-13 21:00:00 UTC" "2002-05-14 21:00:00 UTC" "2002-05-15 21:00:00 UTC"
[10] "2002-05-16 21:00:00 UTC" "2002-05-17 21:00:00 UTC"
x[1,1] %>% lubridate::ymd_hm()
#[1] "2002-05-07 21:00:00 UTC"
我有一个名为 x
的变量,它是这样的:
x <- structure(list(Time = c("2002-05-07 21:00", "2002-05-08 21:00",
"2002-05-09 21:00", "2002-05-10 21:00",
"2002-05-11 21:00", "2002-05-13 21:00",
"2002-05-14 21:00", "2002-05-15 21:00",
"2002-05-16 21:00", "2002-05-17 21:00")),
.Names = "Time", class = c("tbl_df", "data.frame"),
row.names = c(NA, -10L))
现在,我想将 x
中的字符串转换为日期,因为 x[1,1] %>% lubridate::ymd_hm()
给出了单个元素的预期结果,我认为以下方法可以解决问题:
x %>% lubridate::ymd_hm()
但它不起作用(结果为 NA)并且我收到以下警告:
Warning message:
All formats failed to parse. No formats found.
为什么 x %>% lubridate::ymd_hm()
没有按我预期的方式工作,我该怎么做才能获得我想要的结果?
函数 mutate
有效。
x %>% mutate(Time = ymd_hm(Time))
这成功了(有一个我不明白的警告,但我怀疑该对象的行名可能与它有关。):
x %>% lubridate::ymd_hm(.$Time)
[1] NA "2002-05-07 21:00:00 UTC" "2002-05-08 21:00:00 UTC"
[4] "2002-05-09 21:00:00 UTC" "2002-05-10 21:00:00 UTC" "2002-05-11 21:00:00 UTC"
[7] "2002-05-13 21:00:00 UTC" "2002-05-14 21:00:00 UTC" "2002-05-15 21:00:00 UTC"
[10] "2002-05-16 21:00:00 UTC" "2002-05-17 21:00:00 UTC"
x[1,1] %>% lubridate::ymd_hm()
#[1] "2002-05-07 21:00:00 UTC"