如何在r中使用data.table的dcast函数
您可以使用 R 中data.table包的dcast函数将数据帧从长格式重塑为宽格式。
当您想要汇总数据框中的特定变量并按其他变量分组时,此函数特别有用。
以下示例展示了如何在实践中使用 R 中的以下数据帧的dcast函数:
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
其他资源
以下教程提供有关数据表的其他信息:
R 中的 data.table 与数据框:三个关键区别
如何在 R 中过滤 data.table
如何在R中使用rbindlist从多个数据表中创建数据表