我正在尝试使用dplyr的 group_by 和 cur_group_id() 函数创建一个 id 列。这很顺利,但是我希望 cur_group_id() 根据分组变量之一“重新启动”。
示例数据:
df <- data.frame(
X = c(1,1,1,1,1,2),
Y = c(1,1,1,2,2,3),
Z = c(1,1,2,3,3,4)
)
# which looks like this
df
X Y Z
1 1 1
1 1 1
1 1 2
1 2 3
1 2 3
2 3 4
Run Code Online (Sandbox Code Playgroud)
我当前的代码和输出:
library(dplyr)
library(magrittr)
df %<>%
group_by(X, Y, Z) %>%
mutate(ID = cur_group_id()) %>%
ungroup()
df
X Y Z ID
1 1 1 1
1 1 1 1
1 …Run Code Online (Sandbox Code Playgroud)