x <- iris[,1:4]
names(x) <- c("x1","x2","x3","x4")
aggregate(x1+x2+x3+x4~x1,FUN=sum,data=x)
Run Code Online (Sandbox Code Playgroud)
这是输出,我想知道
1. ~公式中的含义是什么?
2.为什么x1 = 4.3 ,x1 + x2 + x3 + x4 是8.5?
x1 x1 + x2 + x3 + x4
1 4.3 8.5
2 4.4 26.9
3 4.5 8.4
当我使用
transform(x,x1=sort(x1))
Run Code Online (Sandbox Code Playgroud)
我得到的是:
x1 x2 x3 x4
1 4.3 3.5 1.4 0.2
2 4.4 3.0 1.4 0.2
3 4.4 3.2 1.3 0.2
4 4.4 3.1 1.5 0.2
Run Code Online (Sandbox Code Playgroud)
?许多输出省略)
何时 x1=4.3 ,x1 + x2 + x3 + x4 不是 3.5+1.4+0.2=5.1,也不是4.3+3.5+1.4+0.2=9.4?
~在aggregate()左边分开什么是"聚合",在右边分开用于"聚合"物品的东西.
在您的示例中,x1 + x2 + x3 + x4将为每一行计算结果,然后根据tuples其中x1显示的具有相同值的组进行求和.
所以,你之所以这样,8.5是因为,总结的数据是:
x1 + x2 + x3 + x4 = sum(c(4.3, 3.0, 1.1, 0.1)) = 8.5
Run Code Online (Sandbox Code Playgroud)
用线x1 = 4.3,在你的榜样,是第14行:14 4.3 3.0 1.1 0.1.
将所有值相加,并且每个结果总和按x1值聚合,并发送给FUN=sum求和.
由于只有一个x1 = 4.3,因此该值将是简单的8.5,这是第14行的条目总和的结果.
| 归档时间: |
|
| 查看次数: |
2245 次 |
| 最近记录: |