2016-03-05 80 views
0

我試圖在R中使用lubridate獲取數據幀的時差col2-col1。 這是我的格式爲:使用lubridate獲取R中數據幀的時間差col2-col1?

    V1     V2 
1 2014-07-01 19:15:03 2014-07-01 19:19:44 
2 2014-07-01 19:29:57 2014-07-01 19:34:39 
3 2014-07-01 19:44:53 2014-07-01 19:49:34 
... 
28 2014-07-02 02:28:25 2014-07-02 02:33:07 
29 2014-07-02 02:43:20 2014-07-02 02:47:59 
30 2014-07-02 02:58:12 2014-07-02 03:02:54 

(這裏http://pastebin.com/GfKJKqcV引擎收錄鏈接)

我試試這個

> lala <- hour(inicioyfin_n37_all$V2) + minute(inicioyfin_n37_all$V2)/60 + second(inicioyfin_n37_all$V2)/3600 
> lolo <- hour(inicioyfin_n37_all$V1) + minute(inicioyfin_n37_all$V1)/60 + second(inicioyfin_n37_all$V1)/3600 
> lala -lolo 
[1] 0.07805556 0.07833333 0.07805556 0.07805556 0.07861111 
[6] 0.07750000 0.07805556 0.07833333 0.07833333 0.07805556 
[11] 0.07833333 0.07777778 0.07777778 0.07805556 0.07861111 
[16] 0.07805556 0.07805556 0.07777778 -23.92194444 0.07833333 
[21] 0.07750000 0.07777778 0.07805556 0.07750000 0.07777778 
[26] 0.07805556 0.07805556 0.07833333 0.07750000 0.07833333 

...但你可以看到單元號19是不是真的好。

即使我添加了天衡

> lala <- day(inicioyfin_n37_all$V2) + hour(inicioyfin_n37_all$V2) + minute(inicioyfin_n37_all$V2)/60 + second(inicioyfin_n37_all$V2)/3600 
> lolo <- day(inicioyfin_n37_all$V1) + hour(inicioyfin_n37_all$V1) + minute(inicioyfin_n37_all$V1)/60 + second(inicioyfin_n37_all$V1)/3600 
> lala -lolo 
[1] 0.07805556 0.07833333 0.07805556 0.07805556 0.07861111 0.07750000 0.07805556 
[8] 0.07833333 0.07833333 0.07805556 0.07833333 0.07777778 0.07777778 0.07805556 
[15] 0.07861111 0.07805556 0.07805556 0.07777778 -22.92194444 0.07833333 0.07750000 
[22] 0.07777778 0.07805556 0.07750000 0.07777778 0.07805556 0.07805556 0.07833333 
[29] 0.07750000 0.07833333 

有什麼建議?我幾乎沒有... :(

回答

1

您可以使用lubridateint_length來計算interval,這是你真的有長度它能計算秒的時間,所以作爲劃分需要更改單位:

int_length(interval(df$V1, df$V2)) 

回報

[1] 281 282 281 281 283 279 281 282 282 281 282 280 280 281 283 281 281 280 281 282 279 280 281 
[24] 279 280 281 281 282 279 282