这是我的数据的子集
i
我想计算同一事件连续发生的持续时间 - 所以,比如我想要事件B的持续时间,输出应该是
int
我尝试过(解决方案)解决方案来自: Using conditional statements with difftime in R和 Calulcate running difference of time using difftime on one column of timestamps
但我似乎无法得到我想要实现的目标。希望我能得到一些帮助!谢谢!
答案 0 :(得分:1)
我们可以使用@Override
public void onMapReady(GoogleMap googleMap) {
mGoogleMap = googleMap;
new YourAsyncTask(this).execute();
}
。转换' data.frame'到' data.table' (data.table
),根据'事件'的游程长度ID创建分组变量。即基于相同的相邻元素(' grp'),转换'时间'到setDT(df1)
,按' grp'分组,指定' i'使用逻辑条件(POSIXct
),找出最后一个和第一个' Time1'的差异。使用Event == "B"
,然后我们分配'持续时间'这不是每个' grp'到NA。
difftime
library(data.table)
setDT(df1)[, grp := rleid(Event)][, Time1 := as.POSIXct(Time, format =
"%H:%M:%S")][Event == "B",
Duration := as.numeric(difftime(Time1[.N], Time1[1], unit = "secs")), grp]
df1[df1[, .I[seq_len(.N) != 1], grp]$V1, Duration := NA][, c("Time1", "grp") := NULL][]
# No Event Time Duration
#1: 1 A 22:00:00 NA
#2: 2 B 22:00:10 20
#3: 3 B 22:00:20 NA
#4: 4 B 22:00:30 NA
#5: 5 C 22:00:40 NA
#6: 6 B 22:00:10 20
#7: 7 B 22:00:20 NA
#8: 8 B 22:00:30 NA
#9: 9 A 22:00:40 NA