本文介绍了每个值的累计计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个每个值出现次数的累积计数器.

I want to create a cumulative counter of the number of times each value appears.

例如说我有专栏:

id
1
2
3
2
2
1
2
3

这将变成:

id   count
1     1
2     1
3     1
2     2
2     3
1     2
2     4
3     2

等等...

谢谢

推荐答案

dplyr方式:

library(dplyr)

foo <- data.frame(id=c(1, 2, 3, 2, 2, 1, 2, 3))
foo <- foo %>% group_by(id) %>% mutate(count=row_number())
foo

# A tibble: 8 x 2
# Groups:   id [3]
     id count
  <dbl> <int>
1     1     1
2     2     1
3     3     1
4     2     2
5     2     3
6     1     2
7     2     4
8     3     2

最终按 id 分组.如果不希望它分组,请添加 %>% ungroup().

That ends up grouped by id. If you want it not grouped, add %>% ungroup().

这篇关于每个值的累计计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-29 04:19