我想在R中将字符串转换为日期时间.
例如,我有'20110101000'作为字符串.我想将此转换为datetime'2011-01-01 00:00.我也想'2011-01-01 01:00'减去'2011-01-01 00:00'= 1小时.最后,我希望有一个条件,如果两个日期时间之间的时差不等于1小时
if(diff != 1){do something}
Run Code Online (Sandbox Code Playgroud)
目前,我使用as.Date,它可以很好地将字符串转换为日期,但没有任何时间选项.与POSIXt结构也给我一个奇怪的结果.
structure('201101010000',class=c('POSIXt', 'POSIXct'))
[1] "8342-08-21 19:40:00 EDT"
Run Code Online (Sandbox Code Playgroud)
我有100,000个必须运行此操作的文件.请让我知道最有效的解决方案.
您可以使用Base R包.
将日期转换为POSIXcts.看下面的代码.
dt1 <- c("201101010100")
dt2 <- c("201101010200")
date1 <- as.POSIXct(dt1, format="%Y%m%d%H%M")
date2 <- as.POSIXct(dt2, format="%Y%m%d%H%M")
diff <- difftime(date2, date1, units="hours")
if(diff != 1) {
print("do something")
}
Run Code Online (Sandbox Code Playgroud)