R中的波浪号(〜)运算符

use*_*419 4 r formula tilde

根据R文档:〜运算符用于公式中以分离公式的右侧和左侧.右侧是自变量,左侧是因变量.我知道什么时候〜用在lm()包中.然而,以下是什么意思?

x~ 1
Run Code Online (Sandbox Code Playgroud)

右边是1.它是什么意思?可以是任何其他数字而不是1吗?

RLa*_*ave 6

来自?lm:

[..]当拟合线性模型时y~x - 1指定通过原点的线[...]

"-"式中删除指定的术语.

所以y ~ 1只是一个具有常数(截距)且没有回归量的模型.

lm(mtcars$mpg ~ 1)
#Call:
#lm(formula = mtcars$mpg ~ 1)
#
#Coefficients:
#(Intercept)  
#      20.09  
Run Code Online (Sandbox Code Playgroud)

可以是任何其他数字而不是1吗?

不,试试看.

lm(mtcars$mpg ~ 0)告诉R删除常量(等于y ~ -1),并lm(mtcars$mpg ~ 2)给出错误(正确).

你应该阅读y ~ 1y ~ constant公式里面,它不是一个简单的数字.