【问题标题】:How to loop a formula in a regression model in R如何在R中的回归模型中循环公式
【发布时间】:2015-05-20 15:47:05
【问题描述】:

假设我有这样的数据:

n=100
df<-data.frame(y=rnorm(n,2,3),
               x1=rbinom(n,1,0.3),
               x2=rbinom(n,10, 0.5), 
               x3=rnorm(n, 50, 20),
               x4=rnorm(n, 3, 2))  

我有一个基本模型y=x1+x2

mod0<-as.formula(y~x1+x2)
lm0<-lm(mod0, data=df)

我想要的是用 x1 与 x3 和 x4 之间的交互项更新 mod0,例如 mod1&lt;-y~x1+x2+x1*x3mod2&lt;-y~x1+x2+x1*x4。由于我有一堆变量需要循环,我想知道这可能是最好的方法。

【问题讨论】:

标签: r for-loop


【解决方案1】:

与其在全局环境中分配松散的变量,不如将公式组装成一个列表。这可以通过lapply() 完成,并利用允许您从字符串创建公式的有用技巧:

lapply(names(df)[-(1:3)],function(var) formula(paste0('y~x1+x2+x1*',var),env=globalenv()));
## [[1]]
## y ~ x1 + x2 + x1 * x3
##
## [[2]]
## y ~ x1 + x2 + x1 * x4

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多