【发布时间】:2021-05-12 03:22:56
【问题描述】:
我需要按 col1 分组,并且对于 col2 中的每个唯一值,给出一个从 1 开始并从那里向上的整数,但从 1 开始返回 col1 中的下一个唯一值。在示例中更容易看到:
示例
这是一个data.frame。
df <- data.frame(
col1=c(100, 100, 100, 100, 200, 200, 300, 300, 300),
col2=c("a", "b", "c", "c",
"b", "b",
"a", "c", "c")
)
df
# col1 col2
# 1 100 a
# 2 100 b
# 3 100 c
# 4 100 c
# 5 200 b
# 6 200 b
# 7 300 a
# 8 300 c
# 9 300 c
对于 col1 中的每个唯一值(即组),col2 中的每个唯一值(例如组)都应按顺序编号:
期望的输出:
df %>%
cbind(col3 =c(1, 2, 3, 3,
1, 1,
1, 2, 2))
# col1 col2 col3
# 1 100 a 1
# 2 100 b 2
# 3 100 c 3
# 4 100 c 3
# 5 200 b 1
# 6 200 b 1
# 7 300 a 1
# 8 300 c 2
# 9 300 c 2
请注意,对于每组 col1,col2 中的每个新值都有自己的整数。
【问题讨论】: