我想创建一个具有连续值的列,但它从df中另外两列的输入中获取其值。如果Team更改(1到2之间)或Event = x,我希望值顺序计数。任何帮助,将不胜感激!见下面的例子:
Team Event Value
1 1 a 1
2 1 a 1
3 2 a 2
4 2 x 3
5 2 a 3
6 1 a 4
7 1 x 5
8 1 a 5
9 2 x 6
10 2 a 6
答案 0 :(得分:1)
这样做......
df$Value <- cumsum(df$Event=="x" | c(1, diff(df$Team))!=0)
它取这些元素的累积和(即TRUE
值),其中Event=="x"
或Team
的连续值的差异不为零。在diff
术语的开头添加了一个额外的元素,以使其与原始元素保持相同的长度。