我有兩個數據幀(df1,df2),其中包含大致相同時間段但不同時間戳的一些測量值。 df1具有每小時數據,df2具有每小時有2-3次測量的數據。我想:R中的時間戳算術運算
爲DF2每小時平均水平進行比較,以DF即一個值每小時從每個數據幀中的小時值
創建DF2一個新元素(DF2 $小時一次),這具有等於從DF1在每小時DF2即2-3值中的每個時戳每小時值的值(取決於沒有。在DF2時間戳相應小時的)
subset
,filter
不要這種情況真的沒有用 - 我不想使用循環。我正在考慮使用strftime
和aggregate
- 有沒有更好的方法來做到這一點?我正在學習data.table
軟件包 - 也許有更快/更方便的方法?
這裏是DF1和DF2的樣子:
> glimpse(df1)
Observations: 7,770
Variables: 7
$ lat <dbl> 30.46198, 30.46198, 30.46198, 30.46198, 30.46198, 30....
$ lon <dbl> -91.17922, -91.17922, -91.17922, -91.17922, -91.17922...
$ date_gmt <chr> "2016-01-01", "2016-01-01", "2016-01-01", "2016-01-01...
$ time_gmt <chr> "06:00", "07:00", "08:00", "09:00", "10:00", "11:00",...
$ dust <dbl> 10.7, 8.0, 8.3, 11.1, 9.1, 10.5, 9.7, 13.5, 10.5, 10....
$ state <chr> "Louisiana", "Louisiana", "Louisiana", "Louisiana", "...
$ tme <dttm> 2016-01-01 06:00:00, 2016-01-01 07:00:00, 2016-01-01...
df1$tme
是POSIxct
對象(tz = "GMT"
)
> glimpse(df2)
Observations: 5,000
Variables: 9
$ dp1 <dbl> 0.96, 0.97, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.9...
$ dp2 <dbl> 1.51, 1.53, 1.55, 1.56, 1.56, 1.56, 1.56, 1.56, 1.5...
$ hz <dbl> 54.13, 54.55, 54.91, 55.03, 54.98, 55.00, 55.13, 55...
$ rh <dbl> 68.15, 68.56, 69.84, 68.32, 69.62, 71.14, 70.42, 70...
$ degc <dbl> 82.88, 82.33, 82.26, 82.62, 82.20, 81.60, 82.05, 81...
$ cfm <dbl> 3993, 3990, 3989, 3928, 3967, 4045, 4002, 3979, 403...
$ dust <dbl> 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.0...
$ time_stamp <dttm> 2016-06-01 17:48:10, 2016-06-01 18:08:12, 2016-06-...
$ dur <dbl> 0.0000000, 0.3338889, 0.6677778, 1.0013889, 1.33555...
df2$time_stamp
是POSIxct
對象(tz = "EST"
)
的'glimpse'不是一個問題非常有幫助的,因爲別人無法複製並粘貼到自己的會話 –