【发布时间】:2020-07-10 18:48:54
【问题描述】:
我遇到了与How to aggregate some columns while keeping other columns in R? 描述的类似问题,但我尝试过的解决方案都没有。
我有一个这样的数据框:
df<-data.frame(a=rep(c("a","b"),each=2),b=c(500,400,200,300),
c = c(5,10,2,4),stringsAsFactors = FALSE)
> df
a b c
1 a 500 5
2 a 400 10
3 b 200 2
4 b 300 4
df%>%
group_by(a)%>%
summarise('max' = max(c), 'sum'=sum(c))
a max sum
<chr> <dbl> <dbl>
1 a 10 15
2 b 4 6
but I need also column b:
1 a 10 15 400
2 b 4 6 300
b 列的值为 max(c)。
编辑特定案例的数据:
> df
a b c
1 a 500 5
2 a 400 5
在这种情况下,我需要在摘要中设置更高的值 col b
# a max sum b
# <chr> <dbl> <dbl> <dbl>
# 1 a 5 10 500
【问题讨论】:
-
列 b 有 4 个值,在您的输出中显示 2 个值。你如何决定在输出中使用哪些?
-
我在末尾添加了关于计数列 b 的信息
-
为什么不明确添加它们
summarise('max' = max(c), 'sum'=sum(c), 'b'=max(b))? -
这不是很好的解决方案,因为那时 A=500,但我预计 A=400
标签: r group-by dplyr summarize