Як використовувати функцію 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