Як використовувати функцію tapply() у r (з прикладами)


Функцію tapply() у R можна використовувати для застосування функції до вектора, згрупованого іншим вектором.

Ця функція використовує такий базовий синтаксис:

тапер (X, INDEX, FUN, ..)

золото:

  • X : вектор для застосування функції
  • INDEX : вектор для групування
  • 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() для обчислення середнього балу , згрупованого за team :

 #calculate mean of points, grouped by team
tapply(df$points, df$team, mean)

   AB
13.5 16.5

З результату ми бачимо:

  • Середній бал команди А становить 13,5 .
  • Середня оцінка команди B становить 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *