Подсчет количества уровней в пределах другого уровня переменной во фрейме данных

#r #dataframe #levels

#r #фрейм данных #уровни

Вопрос:

У меня есть фрейм данных с двумя символьными переменными, state и birds. Я пытаюсь определить, сколько типов птиц находится в каждом состоянии. Я пробовал:

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

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

Тем не менее, я очень застрял. Заранее благодарю вас за помощь; дайте мне знать, если мне нужно добавить дополнительные разъяснения.

Комментарии:

1. Попробуйте data.frame %>% group_by(state, bird) %>% tally()

Ответ №1:

Как насчет этого?

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

Комментарии:

1. В итоге это сработало, за исключением того, что мне пришлось использовать функцию summary вместо mutate. Спасибо!

Ответ №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)