Как использовать функцию n() в r (с примерами)
Вы можете использовать функцию n() из пакета dplyr в R для подсчета количества наблюдений в группе.
Вот три распространенных способа использования этой функции на практике:
Метод 1. Используйте n() для подсчета наблюдений по группам.
df %>%
group_by(group_variable) %>%
summarize(count = n())
Способ 2. Используйте n(), чтобы добавить столбец, отображающий наблюдения по группам.
df %>%
group_by(group_variable) %>%
mutate(count = n())
Метод 3. Используйте n() для фильтрации на основе наблюдений по группе.
df %>%
group_by(group_variable) %>%
filter(n() > 15 )
В следующих примерах показано, как использовать каждый метод на практике со следующим фреймом данных в R, который содержит информацию о различных баскетболистах:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C'), points=c(22, 25, 25, 20, 29, 13), assists=c(10, 12, 9, 4, 11, 10), rebounds=c(9, 8, 5, 10, 14, 12)) #view data frame df team points assists rebounds 1 A 22 10 9 2 A 25 12 8 3 to 25 9 5 4 B 20 4 10 5 B 29 11 14 6 C 13 10 12
Пример 1. Используйте n() для подсчета наблюдений по группам.
Следующий код показывает, как использовать функцию n() с функцией summarise() для подсчета количества наблюдений на команду :
library (dplyr) #count number of observations by team df %>% group_by(team) %>% summarize(count = n()) # A tibble: 3 x 2 team count 1 to 3 2 B 2 3 C 1
По результату мы видим:
- Команда А появляется 3 раза
- Команда Б появляется 2 раза
- Команда C появляется 1 раз
Пример 2. Используйте n(), чтобы добавить столбец, в котором отображаются наблюдения по группам.
Следующий код показывает, как использовать функцию n() с функцией mutate() для добавления столбца в рамку даты, содержащего количество наблюдений на команду :
library (dplyr) #add new column that shows number of observations by team df %>% group_by(team) %>% mutate(count = n()) # A tibble: 6 x 5 # Groups: team [3] team points assists rebounds count 1 to 22 10 9 3 2 to 25 12 8 3 3 to 25 9 5 3 4 B 20 4 10 2 5 B 29 11 14 2 6 C 13 10 12 1
Новый столбец под названием count содержит количество команд для каждой строки во фрейме данных.
Пример 3. Используйте n() для фильтрации на основе наблюдений по группе.
Следующий код показывает, как использовать функцию n() с функцией filter() для фильтрации фрейма данных и отображения только тех строк, в которых команда появляется более одного раза:
library (dplyr) #filter rows where team count is greater than 1 df %>% group_by(team) %>% filter(n() > 1 ) # A tibble: 5 x 4 # Groups: team [2] team points assists rebounds 1 A 22 10 9 2 A 25 12 8 3 to 25 9 5 4 B 20 4 10 5 B 29 11 14
Обратите внимание, что результирующий фрейм данных содержит только строки, в которых указана команда «A» или «B», поскольку это единственные команды, число которых больше единицы.
Дополнительные ресурсы
В следующих руководствах объясняется, как использовать другие распространенные функции в R:
Как использовать функциюthrough() в dplyr
Как использовать функцию relocate() в dplyr
Как использовать функцию среза() в dplyr