在R编程语言中使用〜(代字号)

我在一篇关于回归build模的教程中看到了以下命令:

myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width 

这个命令究竟做了什么,命令中~ (波浪号)的作用是什么?

<-的右边是一个formula对象。 它经常被用来表示一个统计模型,左边的东西是反应,右边的东西是解释variables。 所以用英文说“物种取决于萼片长度,萼片宽度,花瓣长度和花瓣宽度”

该行的myFormula <-部分将公式存储在名为myFormula的对象中,以便您可以在R代码的其他部分中使用它。


R中的公式对象的其他常见用法

lattice包使用它们来指定要绘制的variables 。
ggplot2包使用它们来指定绘图的面板 。
dplyr包使用它们进行非标准的评估 。

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 ~ . 

例如,上面的版本与原始版本相同,因为点意味着“所有variables尚未使用”。 这将查看您在最终模型调用中使用的data.frame,查看data.frame中存在哪些variables,但未在公式中明确提及,并用缺less的variablesreplace点。