此问题在此处已有答案:
How to combine consecutive N groups to one group each repetitive(3个答案)
6天前关闭。
谁能告诉我一种把成对的数字组合成集合的方法。
g a set
1 a 1 1
2 a 2 1
3 b 1 1
4 b 2 1
5 c 1 1
6 c 2 1
7 c 3 2
8 c 4 2
9 d 1 1
10 d 2 1
11 e 1 1
12 e 2 1
13 e 3 2
14 e 4 2
15 e 5 3
16 e 6 3
这里每个组g
都有一个计数器a
。在a中,1和2被设置为1,3和4被设置为2,5和6被设置为3,等等。有没有一种方法可以将集合的计算形式化为a增加到任何数字?如果有,R中的什么工具可以帮助实现这一点?
我试过在dply:group_by()
中使用cumsum,但这显然是不正确的
df <- df %>% group_by(g) %>% mutate(set = cumsum(a))
g a set
<chr> <dbl> <dbl>
1 a 1 1
2 a 2 3
3 b 1 1
4 b 2 3
5 c 1 1
6 c 2 3
7 c 3 6
8 c 4 10
9 d 1 1
10 d 2 3
11 e 1 1
12 e 2 3
13 e 3 6
14 e 4 10
15 e 5 15
16 e 6 21
1条答案
按热度按时间s4n0splo1#
我想你可以在这里使用一些模运算。从
a
中减去1,然后找到除以2后的整数部分。在此加上1即可得到结果。