将汇总结果转换为汇总表

时间:2019-04-02 14:06:54

标签: r

给出该数据帧,该数据帧是对数据求和的结果。 enter image description here

如何将其作为table的一个结果转换为普通表,以便对其进行正确绘制。

要获得所需输出的更清晰图片,应该是这样的:

              Mountain Bikes          Road Bikes  
2005          130694                  708713  
2006          168445                  1304031   
2007          0                       56112  

我什至尝试过一些愚蠢的事情,例如分别计算值然后将它们组合起来。但它仍然是一个数据帧,因此它认为第一列是值而不是标题。

1 个答案:

答案 0 :(得分:0)

使用dplyrtidyr的解决方案。

library(dplyr)
library(tidyr)

dat2 <- dat %>%
  group_by(Category, Year) %>%
  summarize(SUM = sum(x)) %>%
  spread(Category, SUM, fill = 0)
dat2
# # A tibble: 3 x 3
#    Year `Mountain Bikes` `Road Bikes`
#   <dbl>            <dbl>        <dbl>
# 1  2005           130694       708713
# 2  2006           168445      1304031
# 3  2007                0       561122

数据

dat <- data.frame(Category = paste(c("Mountain", "Road", "Mountain", 
                                     "Road", "Road"), "Bikes", sep = " "),
                  Year = c(2005, 2005, 2006, 2006, 2007),
                  x = c(130694, 708713, 168445, 1304031, 561122))