最后一行与前面结果的总和

时间:2016-02-25 15:41:47

标签: r sum row

我想生成一个结果,其中还包括最后一行,找到以前结果的总和。我有以下情况。

输入数据:

Group <- c("A","S","A","T","A","S")
Id <- c(25, 34, 28, 52, 3 ,5)
dataframe <- data.frame(Group, Id)
dataframe

当前功能:

result = group_by(dataframe,Group) %>%
  summarise(q = n()) %>%
  mutate (Freq = round(q / sum(q), 3))

result

目前的结果:

   Group     q  Freq
  (fctr) (int) (dbl)
1      A     3 0.500
2      S     2 0.333
3      T     1 0.167

Dessired result:

   Group     q  Freq
  (fctr) (int) (dbl)
1      A     3 0.500
2      S     2 0.333
3      T     1 0.167
Total        6 1

如何生成总行?

非常感谢。

1 个答案:

答案 0 :(得分:1)

你在R中最接近的将是这样的:

list(as.data.frame(result),"Total" = colSums(result[,-1]))

如果您想要保留在R中,那将是首选。如果您需要一个用于打印目的的表(pdf,html)等,例如使用print.table,您将使用以下内容:

result <- as.data.frame(result)
result["Total",] <- c(NA,colSums(result[,-1]))

然后替换NA。然而,这是非常脏的方式,并使其无法进行进一步的计算。

之前也曾问过这种情况:How do I add a row to a data frame with totals?