【发布时间】:2020-07-23 22:58:35
【问题描述】:
我有一个带有 id、类别和值的数据框。该类别具有“开”或“关”的序列运行。我想确定每次发生这种情况时序列更改为“on”的第一行。由此我想确定滞后中的“价值”并将行引向这一点。这需要按组 (id) 完成
我可以通过过滤到类别更改的时间来找到序列更改的开始,但希望保持数据框完整,以便在 value 变量中找到滞后值和超前值。
这是一个示例数据框。 因此,例如在 id "b" 中,我需要识别值 54 和 90 感谢任何帮助。
id <- c("a", "a", "a", "a", "a", "b", "b", "b", "b", "b","c", "c","c","c","c","c","c","c" )
category <- c("OFF", "OFF", "ON", "ON", "ON", "OFF", "OFF", "OFF", "ON", "ON", "OFF", "OFF","OFF","OFF","OFF", "ON", "ON","ON")
value<- c(100,90,65,55,32,23,45,54,27,90,100,100,100,30,30,25, 45, 67)
dat<-data.frame(id, category, value)
dat
【问题讨论】: