我在一个关于回归建模的教程中看到了以下命令:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
这个命令到底做什么,~(波浪号)在命令中的作用是什么?
我在一个关于回归建模的教程中看到了以下命令:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
这个命令到底做什么,~(波浪号)在命令中的作用是什么?
<-右边的是一个公式对象。它通常用来表示一个统计模型,其中~左边的东西是响应,~右边的东西是解释变量。所以在英语中,你会说“物种取决于萼片长度,萼片宽度,花瓣长度和花瓣宽度”。
该行的myFormula <-部分将公式存储在一个名为myFormula的对象中,以便您可以在R代码的其他部分使用它。
公式对象在R中的其他常用用法
格包使用它们来指定要绘制的变量。 ggplot2包使用它们来指定用于绘图的面板。 dplyr包将它们用于非标准评估。
R定义了公式中使用的~(波浪号)运算符。公式有各种各样的用途,但最常见的可能是用于回归:
library(datasets)
lm( myFormula, data=iris)
Help("~")或Help ("formula")会教你更多。
@Spacedman已经介绍了基本情况。让我们讨论一下它是如何工作的。
首先,作为一个操作符,注意它本质上是一个函数的快捷方式(有两个参数):
> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs
这对了解应用程序很有帮助,例如应用家族命令。
其次,您可以操作公式作为文本:
oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )
第三,你可以把它作为一个列表来操作:
myFormula[[2]]
myFormula[[3]]
最后,还有一些有用的公式技巧(参见help(“公式”)了解更多):
myFormula <- Species ~ .
例如,上面的版本与原始版本相同,因为圆点表示“所有尚未使用的变量”。这将查看您在最终的模型调用中使用的data.frame,查看在data.frame中存在但在公式中没有显式提到的变量,并用那些缺失的变量替换圆点。
总之
波浪号(~)分隔公式的左边和右边。
例如,在一个线性函数中,它将因变量从自变量中分离出来,可以解释为“作为的函数。”因此,当一个人的工资(工资)作为其受教育年限(years_of_education)的函数时,我们会这样做,
wages ~ years_of_education
在这里,
Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
这意味着,物种是一个函数的萼片长度,萼片宽度,花瓣长度和花瓣宽度。