【问题标题】:Get number of occurrences of each unique value [duplicate]获取每个唯一值的出现次数[重复]
【发布时间】:2020-10-07 03:38:09
【问题描述】:

这是我花了一些时间寻找的东西。 Stack Overflow 上有几个很好的答案,详细说明了如何获取唯一值的数量,但我找不到任何显示如何使用 dplyr 计算每个值的出现次数的答案。

【问题讨论】:

  • dplyr not 禁用 base: table(df$val)
  • table(df$val) 不提供每个变量的出现次数?你能详细说明一下吗?
  • 哦,是的。 0 3 次,1 4 次,2 2 次,3 1 次。
  • 哦,现在我知道如何解释了!非常感谢,这样更紧凑。

标签: r dplyr


【解决方案1】:
df %>% select(val) %>% group_by(val) %>% mutate(count = n()) %>% unique()

这首先过滤掉感兴趣的值,按它进行分组,然后创建一个包含所有唯一值的新列,以及每个值的出现次数。

这是一个展示其工作原理的可重现示例:

id <- c(1,2,3,4,5,6,7,8,9,0)
val <- c(0,1,2,3,1,1,1,0,0,2)
df <- data.frame(id=id,val=val)
df
#>    id val
#> 1   1   0
#> 2   2   1
#> 3   3   2
#> 4   4   3
#> 5   5   1
#> 6   6   1
#> 7   7   1
#> 8   8   0
#> 9   9   0
#> 10  0   2

df %>% select(val) %>% group_by(val) %>% mutate(count = n()) %>% unique()
#> # A tibble: 4 x 2
#> # Groups:   val [4]
#>     val count
#>   <dbl> <int>
#> 1     0     3
#> 2     1     4
#> 3     2     2
#> 4     3     1

reprex package (v0.3.0) 于 2020 年 6 月 17 日创建

【讨论】:

    猜你喜欢
    • 2012-10-25
    • 2015-10-28
    • 2011-05-12
    • 1970-01-01
    • 2010-10-24
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多