在R中寻找时差的最快方法是什么: 第1行到第2行,第2行到第3行,第3行到第4行等等。 或者从1到2的时间跨度,2到3,......
最后,我前往一个显示所有差异/时间范围的功能,例如> 7000ms
18:41:24.244
18:41:29.290
18:41:34.259
18:41:55.040
18:42:15.556
18:42:21.587
18:42:25.509
18:42:31.009
18:42:39.072
18:42:59.025
18:43:03.134
18:43:06.712
18:43:47.244
18:43:53.353
18:43:59.181
18:44:14.744
18:44:22.572
18:44:40.040
18:44:44.900
18:44:48.884
18:44:53.744
18:45:01.134
18:45:56.884
18:46:01.384
18:46:05.915
18:46:10.025
18:46:13.837
18:46:18.275
18:46:28.931
18:46:41.259
18:46:44.619
18:46:50.619
答案 0 :(得分:3)
目前还不清楚数据的格式是什么。我已将其作为字符向量导入:
head(times)
# [1] "18:41:24.244" "18:41:29.290" "18:41:34.259" "18:41:55.040" ...
然后,由于您需要差异,我们可以预先添加任意日期并转换为POSIXct
times <- as.POSIXct(paste("2014-01-01",times),format="%Y-%m-%d %H:%M:%OS")
diff(times)
# Time differences in secs
# [1] 5.046 4.969 20.781 20.516 6.031 3.922 5.500 8.063 19.953 4.109 ...
答案 1 :(得分:3)
从字符向量x
head(x)
# [1] "18:41:24.244" "18:41:29.290" "18:41:34.259" "18:41:55.040"
# [5] "18:42:15.556" "18:42:21.587"
您可以将strptime
与diff
st <- strptime(x, "%H:%M:%OS")
st[diff(st) > 7]
# [1] "2014-11-02 18:41:34.259 PST" "2014-11-02 18:41:55.040 PST"
# [3] "2014-11-02 18:42:31.009 PST" "2014-11-02 18:42:39.072 PST"
# [5] "2014-11-02 18:43:06.712 PST" "2014-11-02 18:43:59.181 PST"
# [7] "2014-11-02 18:44:14.744 PST" "2014-11-02 18:44:22.572 PST"
# [9] "2014-11-02 18:44:53.744 PST" "2014-11-02 18:45:01.134 PST"
# [11] "2014-11-02 18:46:18.275 PST" "2014-11-02 18:46:28.931 PST"