在R中创建变量列表以在公式中使用

时间:2012-08-26 19:21:55

标签: r regression

我的数据框dm包含一些虚拟变量,d1d2d3。我想创建一个列表dummies,并以一种简单的方式使用它,如

lm(y~dummies+x,data=dm)

有可能吗?

我找到了两种方法,但我不喜欢它们:

  1. 创建其他数据框dummies

  2. 使用formula(paste('y~',dummies,...)

  3. 之类的内容

    第一种方法吃掉记忆,第二种方法只是丑陋。还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

构造一个仅包含感兴趣变量的数据框,然后使用y ~ .,指示使用数据框中的所有列。

例如:

set.seed(1)
dm <- data.frame(
  y = rnorm(100),
  x = rnorm(100),
  d1 = sample(0:1, 100, replace=TRUE),
  d2 = sample(0:1, 100, replace=TRUE),
  d3 = sample(0:1, 100, replace=TRUE)
)

lm(y ~ ., dm)
lm(formula = y ~ ., data = dm)

Coefficients:
(Intercept)            x           d1           d2           d3  
  -0.089440    -0.012945    -0.006305     0.391576    -0.034225