Как использовать функцию tapply() в r (с примерами)
Функцию Tapply() в R можно использовать для применения функции к вектору, сгруппированному по другому вектору.
Эта функция использует следующий базовый синтаксис:
таппер(X, ИНДЕКС, FUN, ..)
Золото:
- X : вектор, к которому нужно применить функцию.
- ИНДЕКС : вектор для группировки.
- FUN : функция для применения
Следующие примеры показывают, как использовать эту функцию на практике со следующим фреймом данных в R:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(14, 19, 13, 8, 15, 15, 17, 19),
assists=c(4, 3, 3, 5, 9, 14, 15, 12))
#view data frame
df
team position points assists
1 AG 14 4
2 AG 19 3
3 AF 13 3
4 AF 8 5
5 BG 15 9
6 BG 15 14
7 BF 17 15
8 BF 19 12
Пример 1: применить функцию к переменной, сгруппированной по переменной
Следующий код показывает, как использовать функцию Tapply() для расчета среднего значения очков , сгруппированного по командам :
#calculate mean of points, grouped by team
tapply(df$points, df$team, mean)
AB
13.5 16.5
По результату мы видим:
- Среднее количество очков команды А составляет 13,5 .
- Среднее количество очков команды Б составляет 16,5 .
Обратите внимание, что вы также можете включить дополнительные аргументы после функции, например na.rm , чтобы указать, что вы хотите вычислить среднее значение, игнорируя значения NA в фрейме данных:
#calculate mean of points, grouped by team
tapply(df$points, df$team, mean, na. rm = TRUE )
AB
13.5 16.5
Пример 2: применить функцию к переменной, сгруппированной по нескольким переменным
Следующий код показывает, как использовать функцию Tapply() для расчета среднего значения очков , сгруппированного по командам и позициям :
# calculate mean of points, grouped by team and position
tapply(df$points, list(df$team, df$position), mean, na. rm = TRUE )
FG
A 10.5 16.5
B 18.0 15.0
По результату мы видим:
- Среднее количество очков команды А и позиции F составляет 10,5 .
- Среднее количество очков команды А и позиции G составляет 16,5 .
- Среднее количество очков команды B и позиции F составляет 18,0 .
- Среднее количество очков команды B и позиции G составляет 15,0 .
Примечание . В этом примере мы сгруппировали по двум переменным, но мы можем включить в функцию list() столько переменных, сколько захотим, чтобы сгруппировать еще больше переменных.
Дополнительные ресурсы
В следующих руководствах объясняется, как использовать другие распространенные функции в R:
Как использовать функцию dim() в R
Как использовать функцию table() в R
Как использовать функцию Sign() в R