最后一行包含先前结果的总和

Final row with the sum of the previous results

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

输入数据:

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

想要的结果:

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

如何生成总行?

非常感谢。

您在 R 中最接近的可能是这样的:

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

如果您想保留在 R 中,那将是首选。如果您需要 table 用于打印目的(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?