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')))
我想把依赖于Category
和Category2
的Frequency
加起来。
结果应该像这个
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