如何在 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 库的rbindcolSums函数在数据框的底部添加总计行:

 #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中行之间的差异

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注