msc*_*lli 12 aggregate r dataframe
我有一个data.frame
看起来像这样:
# set example data
df <- read.table(textConnection("item\tsize\tweight\tvalue
A\t2\t3\t4
A\t2\t3\t6
B\t1\t2\t3
C\t3\t2\t1
B\t1\t2\t4
B\t1\t2\t2"), header = TRUE)
# print example data
df
Run Code Online (Sandbox Code Playgroud)
item size weight value
1 A 2 3 4
2 A 2 3 6
3 B 1 2 3
4 C 3 2 1
5 B 1 2 4
6 B 1 2 2
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样size
,weight
并列不会增加任何复杂性,因为它们对于每个都是相同的item
.但是,value
同样可以有多个item
.
我想将data.frame折叠为每次item
使用均值一行value
:
item size weight value
1 A 2 3 5
3 B 1 2 3
4 C 3 2 1
Run Code Online (Sandbox Code Playgroud)
我想我必须使用该aggregate
功能,但我无法弄清楚我究竟能得到上述结果.
Mar*_*ler 17
aggregate(value ~ item + size + weight, FUN = mean, data=df)
item size weight value
1 B 1 2 3
2 C 3 2 1
3 A 2 3 5
Run Code Online (Sandbox Code Playgroud)
这是使用ddply
from plyr 包的解决方案:
library(plyr)
ddply(df,.(item),colwise(mean))
item size weight value
1 A 2 3 5
2 B 1 2 3
3 C 3 2 1
Run Code Online (Sandbox Code Playgroud)