我的数据框dm
包含一些虚拟变量,d1
,d2
,d3
。我想创建一个列表dummies
,并以一种简单的方式使用它,如
lm(y~dummies+x,data=dm)
有可能吗?
我找到了两种方法,但我不喜欢它们:
创建其他数据框dummies
。
使用formula(paste('y~',dummies,...)
第一种方法吃掉记忆,第二种方法只是丑陋。还有更好的方法吗?
答案 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