如何解决as.POSIXct将一小段时间变成一堆数字
我有一个my_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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。