【发布时间】:2018-09-28 23:26:09
【问题描述】:
我在 R 中有以下数据框:
Kingdom D1 D2 D4 H1 H5
Animals 2 4 4 6 7
Bacteria 4 3 1 2 4
Viruses 1 4 4 5 6
我试图在保持第一列的同时获得每一列的总和,即使每一行都有一个唯一的名称。在每个其他列相加后,我想将第一列上的行重命名为“总计”。
所需的输出应如下所示:
Kingdom D1 D2 D4 H1 H5
Totals 7 11 9 13 17
我在 R 中尝试了以下命令: sum_df
但是,此命令不保留第一列,我不知道该怎么做。它还以列格式为我提供了所有总数,而不是保持行格式。 D1 7 D2 11 D4 9 H1 13 H5 17
我已尝试使用 transpose t() 函数将这些列转换回一行,但我仍然不知道如何将第一列保留为我显示的所需输出。任何帮助是极大的赞赏!提前致谢!
【问题讨论】:
-
类似
colSums(df[, -1])? -
data.frame(Kingdom = 'Totals', rbind(colSums(d1[sapply(d1, is.numeric)], na.rm = TRUE))) -
janitor::adorn_totals(df)将添加一个“总计”行,之后您可以根据需要对原始数据进行子集化处理。 -
考虑将您的“王国”行更改为数据框标题。这样,您的所有列向量都将属于整数类,从而使您的编码更加容易。
-
感谢大家的意见! :) @Jaap - 你的回答很完美,非常感谢!
标签: r