我有一个tibblemy_column
,它有一列字符串,如下所示:
'1/25/2018 0:00:00'
'11/14/2019 14:25:00'
'4/7/2019 9:31:53'
当我运行时
lapply(my_column, as.POSIXct, format="%m/%d/%Y %H:%M:%S")
我收到了一堆大数字,而不是我想要的约会时间。是什么导致了这种不受欢迎的行为,我该如何解决?
您不需要使用lapply()
,因为asPOSIXct()
是一个矢量化函数,就像许多R的函数一样。使用lapply()
时,输出存储在列表中,将其分配为表列会遇到问题。
如果你想返回一个向量,这样你就可以把它分配给你的表列,你可以这样做:
df$my_column = as.POSIXct(df$my_column, format = "%m/%d/%Y %H:%M:%S")
或者您可以使用lubridate库,它的效率略高。像这样:
library(lubridate)
df$my_column <- parse_date_time(df$my_column, '%m/%d/%y %H:%M:%S')
这是输出:
[1] "2018-01-25 00:00:00 -02" "2019-11-14 14:25:00 -03" "2019-04-07 09:31:53 -03"
注意作为矢量的输出(使用矢量化函数(与使用lapply()
时的输出之间的差异,如下所示:
[[1]]
[1] "2018-01-25 -02"
[[2]]
[1] "2019-11-14 14:25:00 -03"
[[3]]
[1] "2019-04-07 09:31:53 -03"