可以将tables :: tabular用于聚合数据

时间:2017-06-12 22:01:33

标签: r tabular

我正在尝试使用表格来生成漂亮的表格。我有汇总的数据:

df<-data.frame(
  category=as.factor(c("cat1", "cat1", "cat2","cat2", "cat3")),
  color=as.factor(c("red","yellow", "orange", "red", "green")),
  counts = c(3,21, 24, 5, 97))

我想生成一个表来计算“计数”变量,而不是计算记录数。如果我这样做:

tabular(category~(n=1), data=df)

产生

category n
cat1     2
cat2     2
cat3     1

好像我需要这样的东西:

tabular(category~(Sum=sum(counts)), data=df)

但是我收到了一个错误:

Error in term2table(rows[[i]], cols[[j]], data, n) : 
  Argument 'sum(counts)' is not length 5

感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

你可以使用聚合吗?

> aggregate(counts~category, df, sum)
  category counts
1     cat1     24
2     cat2     29
3     cat3     97

答案 1 :(得分:0)

以下是使用tidyverse

的选项
library(tidyverse)
df %>% 
  group_by(category) %>% 
  summarise(counts = sum(counts))
# A tibble: 3 x 2    
#    category counts
#    <fctr>  <dbl>
#1     cat1     24
#2     cat2     29
#3     cat3     97