Як використовувати функцію dcast для data.table у r
Ви можете використовувати функцію dcast пакета data.table в R, щоб змінити форму кадру даних із довгого формату на широкий.
Ця функція особливо корисна, коли ви хочете підсумувати певні змінні у кадрі даних, згруповані за іншими змінними.
У наступних прикладах показано, як використовувати функцію dcast на практиці з наступним кадром даних у R:
library (data.table) #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(18, 13, 10, 12, 16, 25, 24, 31), assists=c(9, 8, 8, 5, 12, 15, 10, 7)) #convert data frame to data table dt <- setDT(df) #view data table dt team position points assists 1: AG 18 9 2: AG 13 8 3:AF 10 8 4:AF 12 5 5: BG 16 12 6: BG 25 15 7: BF 24 10 8: BF 31 7
Приклад 1: обчислення метрики для змінної, згрупованої за іншими змінними
У наведеному нижче коді показано, як використовувати функцію dcast для обчислення середнього балу , згрупованого за змінними команди та позиції :
library (data.table) #calculate mean points value by team and position dt_new <- dcast(dt, team + position ~., fun. aggregate = mean, value. var = ' points ') #view results dt_new team position. 1:AF 11.0 2: AG 15.5 3: BF 27.5 4: BG 20.5
Приклад 2: обчислення кількох показників для змінної, згрупованих за іншими змінними
У наступному коді показано, як використовувати функцію dcast для обчислення середнього та максимального значення балів , згрупованих за змінними команди та позиції :
library (data.table) #calculate mean and max points values by team and position dt_new <- dcast(dt, team + position ~., fun. aggregate = list(mean, max), value. var = ' points ') #view results dt_new team position points_mean points_max 1:AF 11.0 12 2: AG 15.5 18 3: BF 27.5 31 4: BG 20.5 25
Приклад 3: обчисліть показник для кількох змінних, згрупованих за іншими змінними
У наведеному нижче коді показано, як використовувати функцію dcast для обчислення середнього значення очок і середнього значення асиста , згрупованих за змінними команди та позиції :
library (data.table) #calculate mean and max points values by team and position dt_new <- dcast(dt, team + position ~., fun. aggregate = mean, value. var = c(' points ', ' assists ')) #view results dt_new team position points assists 1:AF 11.0 6.5 2: AG 15.5 8.5 3: BF 27.5 8.5 4: BG 20.5 13.5
Додаткові ресурси
У наступних посібниках надається додаткова інформація про таблиці даних:
data.table проти кадру даних у R: три ключові відмінності
Як відфільтрувати data.table у R
Як використовувати rbindlist у R для створення таблиці даних із кількох