[英]Aggregate sequential time recordings in R
我試圖按時間序列計算順序記錄,並聚合這些序列的數據。
示例數據
以下是最大頻率為1秒的數據示例:
timestamp Value
06:07:23 0.439
06:07:24 0.556
06:07:25 0.430
06:07:26 0.418
06:07:27 0.407
06:07:47 0.439
06:07:48 0.420
06:07:49 0.405
09:55:21 0.507
09:55:22 0.439
10:03:24 0.439
10:03:25 0.439
10:03:36 1.708
10:03:37 0.608
10:03:38 0.439
10:03:46 0.484
10:03:47 0.380
10:03:48 0.607
10:03:49 0.439
10:03:50 0.439
10:03:51 0.439
10:03:52 0.430
10:03:53 0.439
10:03:54 4.924
10:03:55 1.012
10:03:56 0.887
10:03:57 0.439
10:03:58 0.439
10:04:18 0.447
10:04:19 0.447
可以看出,存在每秒采用一個值的時期。 我試圖找到一種聚合的方法,如果觀察結果之間沒有差距,最終會得到如下結果:
timestamp max duration
06:07:23 0.556 5
06:07:47 0.439 3
09:55:21 0.507 2
10:03:24 0.439 2
10:03:36 1.708 3
10:03:46 1.012 13
10:04:18 0.447 2
我正在努力尋找一種按順序數據對數據進行分組的方法。 我能找到的最接近的答案就是這個答案,然而,答案是在三年半前提供的,我正努力讓data.table
方法正常工作。
任何想法非常感謝!
這是data.table
的嘗試:
dat[,
.(timestamp = timestamp[1], max = max(Value), duration=.N),
by = cumsum(c(FALSE, diff(as.POSIXct(dat$timestamp, format="%H:%M:%S", tz="UTC")) > 1))
]
# cumsum timestamp max duration
#1: 0 06:07:23 0.556 5
#2: 1 06:07:47 0.439 3
#3: 2 09:55:21 0.507 2
#4: 3 10:03:24 0.439 2
#5: 4 10:03:36 1.708 3
#6: 5 10:03:46 4.924 13
#7: 6 10:04:18 0.447 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.