【问题标题】:Counting number of levels within another variable level in data frame计算数据框中另一个变量级别内的级别数
【发布时间】:2020-09-28 18:19:50
【问题描述】:

我有一个包含两个字符变量的数据框,状态和鸟类。我想看看每个州有多少种鸟类。我试过了:

data.frame %>%
   group_by(state) %>%
   n_distinct(data.frame$bird)

data.frame %>%
   group_by(state) %>%
   n_distinct(unique(data.frame$bird))

但是,我非常卡住。预先感谢您的帮助;让我知道是否需要添加更多说明。

【问题讨论】:

  • 试试data.frame %>% group_by(state, bird) %>% tally()

标签: r dataframe levels


【解决方案1】:

这个怎么样?

data.frame %>%
   group_by(state) %>%
   summarize(distinct_birds = n_distinct(data.frame$bird))

【讨论】:

  • 这最终成功了,只是我不得不使用汇总函数而不是变异。谢谢!
【解决方案2】:

使用data.table这将非常简单

library(data.table)
dt=data.table(data.frame)

dt[,counts:=.N, by=.(state,birds)]
  • .N 是获取计数的 data.table 函数
  • by 包括分组变量。

【讨论】:

    【解决方案3】:

    同样使用 tidyverse:

    library(tidyverse)
    
    data.frame %>% count(state)
    

    【讨论】:

      猜你喜欢
      • 2021-10-24
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多