我都對着plyr但我想實現比普通的拆分數據爲子集和應用功能,每個子集。(不是一般的,很有挑戰性)
Time Criteria
17/05/2013 17:22 A
17/05/2013 17:23 A
17/05/2013 17:29 A
17/05/2013 17:22 B
17/05/2013 17:28 B
17/05/2013 17:29 B
25/05/2013 16:56 C
25/05/2013 16:56 C
我很大的不同想要按照標準拆分這些數據。然後,對於每個子集,遍歷記錄並決定是否保留該記錄,如果每條記錄距離最後一條記錄少於5分鐘。
所需的結果:
Time Criteria Keep
17/05/2013 17:22 A T
17/05/2013 17:23 A T
17/05/2013 17:29 A F --> 29 is more than 5 mins from 23
17/05/2013 17:22 B F --> Not keeping this because it is >5min from next record
17/05/2013 17:28 B T
17/05/2013 17:29 B T
25/05/2013 16:56 C T
25/05/2013 16:56 C T
Dput:
structure(list(Time = structure(c(1368782520, 1368782580, 1368782940,
1368782520, 1368782880, 1368782940, 1369472160, 1369472160), class = c("POSIXct",
"POSIXt"), tzone = "Singapore"), Criteria = structure(c(1L, 1L,
1L, 2L, 2L, 2L, 3L, 3L), .Label = c("A", "B", "C"), class = "factor")), .Names = c("Time",
"Criteria"), row.names = c(NA, -8L), class = "data.frame")
我不確定這是否構成良好。爲什麼它不會是第二個'B'被踢出去的,因爲它遠離第一個'B'超過'5'而不是相反? – flodel
我需要以編程的方式做到這一點,只要面臨上述條件,就放棄第一行並繼續嘗試下一步。這就是17:22被拋棄的原因,17:28,17:29被保留下來。 – laiboonh
我試圖弄清楚爲什麼我的解決方案沒有提供所需的結果,並意識到您的「時間」在您的演示數據和預期結果之間並不一致... – alexwhan