如何在 r 中将总行添加到数据框中
您可以使用以下方法将“总计”行添加到 R 中数据框的底部:
方法一:使用Base R
rbind(df, data. frame (team=' Total ', t(colSums(df[, -1]))))
方法2:使用dplyr
library (dplyr) df %>% bind_rows(summarize(., across(where(is.numeric), sum), across(where(is.character), ~' Total ')))
以下示例展示了如何在实践中使用以下数据框使用每种方法:
#create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F'), assists=c(5, 7, 7, 9, 12, 9), rebounds=c(11, 8, 10, 6, 6, 5), blocks=c(6, 6, 3, 2, 7, 9)) #view data frame df team assists rebound blocks 1 to 5 11 6 2 B 7 8 6 3 C 7 10 3 4 D 9 6 2 5 E 12 6 7 6 F 9 5 9
示例 1:使用基数 R 添加总计行
我们可以使用 R 库的rbind和colSums函数在数据框的底部添加总计行:
#add total row to data frame df_new <- rbind(df, data. frame (team=' Total ', t(colSums(df[, -1])))) #view new data frame df_new team assists rebound blocks 1 to 5 11 6 2 B 7 8 6 3 C 7 10 3 4 D 9 6 2 5 E 12 6 7 6 F 9 5 9 7 Total 49 46 33
请注意,数据框底部添加了一行,显示每列中值的总和。
示例 2:使用 dplyr 添加总计行
以下代码演示了如何使用 R 中的dplyr包函数将总计行添加到数据框的底部:
library (dplyr) #add total row to data frame df_new <- df %>% bind_rows(summarize(., across(where(is.numeric), sum), across(where(is.character), ~' Total '))) #view new data frame df_new team assists rebound blocks 1 to 5 11 6 2 B 7 8 6 3 C 7 10 3 4 D 9 6 2 5 E 12 6 7 6 F 9 5 9 7 Total 49 46 33
请注意,数据框底部添加了一行,显示每列中值的总和。
另请注意,此方法产生与基本 R 方法相同的结果。
其他资源
以下教程解释了如何在 R 中执行其他常见任务:
如何在 R 中使用 rbind
R中如何删除行
如何计算R中行之间的差异