【发布时间】:2021-02-08 20:49:20
【问题描述】:
我有一个包含 3 列的数据框。每个人的 id,他们所属的组数 (gr) 和位置代码 (loc)。我要做的是确定哪些人访问 2 个位置,顺序如下:位置 1 -> 位置 2 -> 位置 1。
虚拟数据集:
id <- c(1,1,1,1,1,1,1,2,2,2,2,2,4,4,4,4,4,4,4,4)
gr<-c(1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4)
loc <- c(5,5,4,4,5,5,5,3,3,3,3,2,2,2,2,3,3,2,2,2)
df<- data.frame(id,gr, loc)
我尝试使用diff 函数来识别位置之间的差异:
dif<- diff(as.numeric(df$loc))
但我找不到任何其他前进的方式。此外,这种方法不考虑每个人的组(并且组之间的 id 重复)。我在想可能使用lag 函数,但不确定它如何或是否有帮助。有什么建议吗?非常感谢,我还是 R 的新手。
期望的输出:
id<- c(1,4)
gr<- c(1,4)
out<- data.frame(cbind(id, gr))
【问题讨论】: