〜总的来说是什么意思?

Bqs*_*jbq 2 r

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

Rub*_*ens 8

~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行的条目总和的结果.


Asu*_*awa 5

所述波浪操作者创建一个符号公式.这是博客文章的摘录,它比我更好地解释了它:

f =价格〜克拉

[...]

我们首先使用看起来很奇怪的代字号运算符创建公式f.这告诉R解释器我们正在定义一个符号公式,而不是一个立即评估的表达式.因此,我们对公式f的定义说,"价格是克拉的函数".

公式 s 的手册页有更多关于波浪号运算符的说法.