我对R很新,虽然我已经完成了一些数据争论,但我对如何解决这个问题完全不知所措.到目前为止,Google和SO搜索并没有让我感到满意.如果这是重复的,我很抱歉,那么请指出我正确的解决方案.
我有一个名为id和seq的2列df.像这样
set.seed(12)
id <- rep(c(1:2),10)
seq<-sample(c(1:4),20,replace=T)
df <- data.frame(id,seq)
df <- df[order(df$id),]
id seq
1 1 1
3 1 4
5 1 1
7 1 1
9 1 1
11 1 2
13 1 2
15 1 2
17 1 2
19 1 3
2 2 4
4 2 2
6 2 1
8 2 3
10 2 1
12 2 4
14 2 2
16 2 2
18 2 3
20 2 1
Run Code Online (Sandbox Code Playgroud)
我需要计算seq列中相等元素之间的不等元素的数量,例如,在1和1或3和3之间有多少元素等.元素的第一个实例应该是NaN,因为在此之前没有元素如果下一个元素是相同的,它应该只编码0,因为中间没有不相等的元素,例如1和1.结果应该写在新的列中,例如延迟.
一个问题是,一旦在id列中开始新的id(此处:1和2),此过程将不得不重新开始.
这是我希望输出的内容:
id seq …Run Code Online (Sandbox Code Playgroud)