在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点。