为R中的行值集群分配ID

0 r cluster-computing uniqueidentifier

我是R编程的新手(我一生都在SAS编程),我认为这是一个我无法找到答案的基本问题(找到了类似问题的答案,但没有找到答案).

想象一下,我们有一个二进制变量(我们称之为"v1"),它的值可以是0或1.我想创建一个新变量(我们称之为"v2"),它取值为每次出现1的新值或在0之后出现1s的字符串时,都会显示一个唯一的集群ID.最后,我想从v1创建"v2",如下所示:

Obs v1  v2
1   0   NA
2   0   NA
3   1   1
4   1   1
5   0   NA
6   1   2
7   0   NA
8   1   3
9   1   3
10  1   3
11  0   NA
12  1   4
Run Code Online (Sandbox Code Playgroud)

如果有人能够对此有所了解,我将非常感激.非常感谢.

And*_*tar 6

这样就可以了.它将组设置为等于v1值中增加数量1的累积和,然后将0设置回NA.

df$v2 <- cumsum(c(df$v1[1]==1,diff(df$v1)==1))
df$v2[df$v1==0] <- NA
Run Code Online (Sandbox Code Playgroud)

  • 如果v1的第一个元素是1,似乎存在问题. (2认同)