我在有关回归建模的教程中看到了以下命令:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
这个命令究竟做了什么,~
(波浪号)在命令中的作用是什么?
R 定义了一个~
(波浪号)运算符以在公式中使用。公式有各种各样的用途,但也许最常见的是回归:
library(datasets)
lm( myFormula, data=iris)
help("~")
或者help("formula")
会教你更多。
@Spacedman 涵盖了基础知识。让我们讨论一下它是如何工作的。
首先,作为运算符,请注意它本质上是函数的快捷方式(带有两个参数):
> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs
这对于了解在apply
家庭命令中的使用可能会有所帮助。
其次,您可以将公式作为文本操作:
oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )
第三,您可以将其作为列表进行操作:
myFormula[[2]]
myFormula[[3]]
最后,还有一些有用的公式技巧(更多信息请参阅help("formula")
):
myFormula <- Species ~ .
例如,上面的版本与原始版本相同,因为点表示“所有尚未使用的变量”。这会查看您在最终模型调用中使用的 data.frame,查看 data.frame 中存在哪些变量,但您的公式中没有明确提及,并用那些缺失的变量替换点。
一句话,
The tilde
(~) separates the left side of a formula with the right side of the formula.
例如,在线性函数中,它将因变量与自变量分开,可以解释为“作为函数”。所以,当一个人的工资(工资)作为他们受教育年限(years_of_education)的函数时,我们会做类似的事情,
wages ~ years_of_education
这里,
Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
这意味着,Species
是 的函数 Sepal Length, Sepal Width, Petal Length and Petal Width
。