再会,
我在 as.POSIXct 中有两个日期列,格式为 YYYY-MM-DD HH:MM:SS。我想得到两者之间的差异,以天小时:秒的格式显示。这是一些虚拟数据:
a<-c("2018-03-20 11:52:25 AST", "2018-03-20 12:51:25 AST", "2018-03-20 14:19:04 AST",
"2018-03-21 14:12:12 AST", "2018-03-21 12:09:22 AST", "2018-03-21 15:28:01 AST")
b<-c("2018-04-09 18:39:38 AST", "2018-06-23 19:13:14 AST", "2018-03-20 23:23:03 AST",
"2018-05-10 21:29:28 AST", "2018-03-22 03:17:23 AST", "2018-05-12 00:19:39 AST")
ab<-data.frame(a,b)
这给出了这个数据框:
a b
2018-03-20 11:52:25 AST 2018-04-09 18:39:38 AST
2018-03-20 12:51:25 AST 2018-06-23 19:13:14 AST
2018-03-20 14:19:04 AST 2018-03-20 23:23:03 AST
2018-03-21 14:12:12 AST 2018-05-10 21:29:28 AST
2018-03-21 12:09:22 AST 2018-03-22 03:17:23 AST
2018-03-21 15:28:01 AST 2018-05-12 00:19:39 AST
我想得到a和b之间的差值,或者从时间b中减去时间a以获得X天X小时:X秒的输出。
我在下面使用了 difftime,并且单位设置不同:
ab$time_difference<-difftime(ab$b, ab$a)
ab
a b time_difference
2018-03-20 11:52:25 AST 2018-04-09 18:39:38 AST 486.786944 hours
2018-03-20 12:51:25 AST 2018-06-23 19:13:14 AST 2286.363611 hours
2018-03-20 14:19:04 AST 2018-03-20 23:23:03 AST 9.066389 hours
2018-03-21 14:12:12 AST 2018-05-10 21:29:28 AST 1207.287778 hours
2018-03-21 12:09:22 AST 2018-03-22 03:17:23 AST 15.133611 hours
2018-03-21 15:28:01 AST 2018-05-12 00:19:39 AST 1232.860556 hours
我还尝试过以下方法:
ab$time_difference<-difftime(ab$b, ab$a,units=c("days","hours","seconds"))
但出现“单位”长度必须为 1 的错误。是否应该使用不同的命令,或者是否有任何方法可以让 difftime 产生更精确的时间差?
Thanks!