R-如何按多组对变量求和


x <- data.frame(Category=factor(c("First", "First", "First", "Second",
"Third", "Third", "Second")), 
Frequency=c(10,15,5,2,14,20,3),Category2=factor(c('a','a','b','e','c','a','e')))

我想把依赖于CategoryCategory2Frequency加起来。

结果应该像这个

Category Frequency Category2
First        25         a
First         5         b
Second         5         e
Third        14         c
Third        20         a

我看到这个问题

如何按组对变量求和

我尝试了x <- x %>% group_by(Category,Category2) %>% summarize(sum = sum(Frequency)),这是错误的。这不起aggregate(Frequency ~ c(Category,Category2), x, sum)的作用

谢谢

您提供的代码会给出以下结果:

`summarise()` regrouping output by 'Category' (override with `.groups` argument)
# A tibble: 5 x 3
# Groups:   Category [3]
Category Category2   sum
<fct>    <fct>     <dbl>
1 First    a            25
2 First    b             5
3 Second   e             5
4 Third    a            20
5 Third    c            14

(有关该警告,请参阅此处:如何解释dplyr消息"summary(("通过';x';(用`.groups'参数重写(?(

如果你需要得到你期望的东西,只需运行:

x %>% 
group_by(Category,Category2) %>% 
summarise(Frequency = sum(Frequency)) %>% 
ungroup() %>% 
select(Category, Frequency, Category2)

它将产生这样一个tibble:

`summarise()` regrouping output by 'Category' (override with `.groups` argument)
# A tibble: 5 x 3
Category Frequency Category2
<fct>        <dbl> <fct>    
1 First           25 a        
2 First            5 b        
3 Second           5 e        
4 Third           20 a        
5 Third           14 c   

最新更新