我有一个包含两列的数据集,日期和时间,我想将其转换为同时包含日期和时间的列:"2014-02-01 13:04:05"
例如。
我知道这样做的代码是:
as.POSIXct(paste(data$Date, data$Time),format="%Y-%m-%d %H:%M:%S")
这会返回很多正确的值,但也会返回 NA,因为数据集中存在问题。
我的问题在于我的数据集将 data$Time
视为因素,时间范围从 02:00:00
- 25:59:00
.
所以我想要的是截断 data$Time
所以如果它超过 24:00:00
它会在日期中添加另一天并显示正确的时间.
例如:
"2014-01-31 25:30:00"
将变为 "2014-02-01 01:30:00"
最佳答案
使用来自 lubridate 的 hms
:
library(lubridate)
x <- "2014-01-31 25:30:00" # input
as.Date(x) + hms(sub(".* ", "", x))
给予:
[1] "2014-02-01 01:30:00 UTC"
关于r - 将日期和时间转换为日期+时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29367685/