我想生成一个结果,其中还包括最后一行,找到以前结果的总和。我有以下情况。
输入数据:
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
如何生成总行?
非常感谢。
答案 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。然而,这是非常脏的方式,并使其无法进行进一步的计算。