Как использовать функцию 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *