我有一个数据集,看起来像这样
df
ID size product x y
A 1 abc 0.3 5
B 1 abc 0.8 7
C 1 abc 0.5 2
D 3 def 0.6 1
我想把x和mean相加,y和sum相加
所以用求和的方式聚合两者的代码如下所示df1<-aggregate(list(x=df$x, y=df$y), by=list(df$size), FUN="sum")
我如何更改该代码以获得这样的数据集:
df2
size x y
1 0.53 14
3 0.6 1
先谢谢你了
3条答案
按热度按时间iibxawm41#
一个选项是
collap
fromcollapse
注意:我们可以在
list
中有一系列列,即或者使用
mtcars
数据return
可以是list
或long_dupl
或long
或wide
如果我们想对不同的列使用多个函数,一个选项是通过
merge
将list
元素循环到一个汇总输出,从而使用Map
和Reduce
进行循环数据
0tdrvxhp2#
在处理这种性质的 Dataframe 时,我会使用
tidyverse
包中的summarise()
函数。这允许您对一组多个不同的方程进行总结。我已经演示了我期望的解决方案。基础解决方案需要不同的方法。
oxcyiej73#
SSBtools
包中的函数aggregate_multiple_fun
是aggregate
的 Package 器,它允许多个函数和多个变量的函数。在这种情况下,可能性是
然后,输出变量名将是
x_mean
和y_sum
。对于名称为x
和y
:要使用
na.rm
到mean
和sum
的参数,必须将额外的参数设置为TRUE
:转发额外的参数可能是一个陷阱,因此默认情况下不会这样做。
forward_dots
参数是必需的,在mean
的情况下,dots2dots
也是必需的。