R 将日期和时间转换为日期+;时间戳
我有一个数据集,有两列,日期和时间,我想将其转换为一列,同时包含日期和时间,例如:R 将日期和时间转换为日期+;时间戳,r,date,time,R,Date,Time,我有一个数据集,有两列,日期和时间,我想将其转换为一列,同时包含日期和时间,例如:“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 因此,我想要的是切断数据$Time,这样,如果超过2
“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
因此,我想要的是切断数据$Time
,这样,如果超过24:00:00
,它会在日期上再添加一天,并显示正确的时间
例如:
“2014-01-31 25:30:00”
将变为“2014-02-01 01:30:00”
如果范围从2:00变为25:59,则意味着与范围00:00-23:59相差2小时。。。那你为什么不从约会开始两个小时?例如,“2014-01-31 25:30:00”将变成“2014-01-31 23:30:00”,不是吗
如果这是你想要的,我想这应该行得通:
my.lt使用lubridate提供的
hms
:
library(lubridate)
x <- "2014-01-31 25:30:00" # input
as.Date(x) + hms(sub(".* ", "", x))
不完全是这样,我的问题是,你不能只从时间中减去2小时,而是应该在日期中再加一天,因此示例应该这样做:“2014-01-31 25:30:00”将变为“2014-02-01 01:30:00”,那么也许你可以使用我的.lt$mday?我不完全理解?我有超过50万行,所以这不是我可以手动完成的。所以我在想,有可能创建一个LOGIT向量,表示时间是否超过24:00:00小时,然后该向量会表示为真或假。然后使用该LOGIT向量添加另一天,只要它为真。你能帮我吗?
[1] "2014-02-01 01:30:00 UTC"