再会,
我在 as.POSIXct 中有两个日期列,格式为 YYYY-MM-DD HH:MM:SS。我想了解两者之间的差异,以 Days Hours:Seconds 格式显示。这是一些虚拟数据:
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 有什么方法可以产生更精确的时差?
谢谢!