计算数据框中另一个变量级别内的级别数

Counting number of levels within another variable level in data frame

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

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) %>%
   summarize(distinct_birds = n_distinct(data.frame$bird))

使用 data.table

这将非常简单
library(data.table)
dt=data.table(data.frame)

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

同时使用 tidyverse:

library(tidyverse)

data.frame %>% count(state)