新列,指示特定其他列中的值更改

时间:2017-11-03 12:39:40

标签: r

我正在寻找一种方法来将一个列(几乎像一个序列列)添加到一个数据集中,该数据集指示特定列的每个更改。我在这里找到了这个非常好的解决方案:Increment by 1 for every change in column in R它对大多数观察都很有效。

我的数据集有18列,大约320'000行。为了使它更容易,它看起来像以下(包括结果):

df <- data.frame(var1= c(1, 0, 1, 0, 0, 1, 0, 0, 0), sequence=c(1, 2, 3, 4, 4, 5, 6, 6, 6))

我使用了以下代码,它适用于上面的示例:

df$seq <- cumsum(c(1,as.numeric(diff(df$var1))!=0))

但是,我发现有时我的新列(seq列)会更改其值,即使另一列(var1)没有!

enter image description here

cumsum(c(1,as.numeric(diff(df$var1))!=0))命令有什么问题或与我的数据中的问题有关吗?

由于我对R很安静,如果有人能帮助我,我将不胜感激。

0 个答案:

没有答案