我正在尝试根据值列将一些混乱的时间序列数据分组在一起-本质上,我正在尝试创建将产生列targetid
的函数-也就是说,数据集按{分组{1}},并且每当非零值再次开始时,都会创建一个新ID。
id
这个answer可能是我能找到的最接近的数字(由于id会重置每个非零值,因此无效。
答案 0 :(得分:0)
我想针对我的特定问题发布答案:
library(dplyr)
a2 <- a %>%
group_by(id) %>%
mutate(next.valuecolumn = lag(valuecolumn),
next.valuecolumn2 = coalesce(next.valuecolumn, valuecolumn),
diff = ifelse(valuecolumn > 0 & next.valuecolumn2 == 0, 1, 0),
target2 = cumsum(diff)+1)
行ID不会“重置”,但这不是问题所必需的,因为我可以按user_id-target分组以按ID对值求和。