R语言 formula()

一、
使用lm、glm和plm等函数进行回归估计,或是使用cast等函数进行数据重塑的时候,都要用到一类特殊的对象:formula回归模型的表达式就是一个formula对象

f <- formula(y~x+z)
f <- as.formula(y~x+z)
f <- y~x+z
#以上三行代码完全等价,创建的都是一个formula对象

y~x+z是一个简单的formula。
~+是formula中的运算符,但它们与人们通常理解中的数学运算符相去甚远。

**以下是formula中运算符的含义:**

~~连接公式两侧,~的左侧是因变量,右侧是自变量。
+ :模型中不同的项用+分隔。注意R语言中默认表达式带常数项,因此估计 [公式] 只需要写y~x。
--表示从模型中移除某一项,y~x-1表示从模型中移除常数项,估计的是一个不带截距项的过原点的回归方程。此外,y~x+0或y~0+x也可以表示不带截距项的回归方程。
::冒号在formula中表示交互项
**不表示乘法, [公式][公式] 是等价的, [公式][公式] 等价
^[公式]^2[公式] 等价,所以 [公式] ^2在formula中并不是 [公式] 的平方的意思

二、

R 语言回归函数里面的公式函数, as.formula(). 其作用就是将字符串转换成公式。

> aa = "ReadCount~Age+BMI+Sex+HAMD+1+(1|Sex)"
> aa
[1] "ReadCount~Age+BMI+Sex+HAMD+1+(1|Sex)"
> as.formula(aa)
ReadCount ~ Age + BMI + Sex + HAMD + 1 + (1 | Sex)

三、将formula连接起来
要把几个formula复合连接起来, 有两种办法.
首先可以分别写出来这些formula, 然后用list把它们组合起来

i <- y ~ x
j <- y ~ x + x1
k <- y ~ x + x1 + x2

formulae = list(as.formula(i),as.formula(j),as.formula(k))

另外也可以用lapply()把as.formula()应用于一个list的所有元素:

# Join all with `c()`
l <- c(i, j, k)

# Apply `as.formula` to all elements of `f`
lapply(l, as.formula)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初于青丝mc终于白发

老爷们,觉得好的给个打赏呗!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值