我有一个dm
带有一些虚拟变量的数据框,d1
, d2
, d3
。我想创建一个它们的列表dummies
,并以简单的方式使用它,例如
lm(y~dummies+x,data=dm)
可能吗?
我找到了两种方法,但我不喜欢它们:
创建一个额外的数据框
dummies
。使用类似的东西
formula(paste('y~',dummies,...)
第一种方法会吃掉内存,第二种方法很丑。有没有更好的办法?
我有一个dm
带有一些虚拟变量的数据框,d1
, d2
, d3
。我想创建一个它们的列表dummies
,并以简单的方式使用它,例如
lm(y~dummies+x,data=dm)
可能吗?
我找到了两种方法,但我不喜欢它们:
创建一个额外的数据框dummies
。
使用类似的东西formula(paste('y~',dummies,...)
第一种方法会吃掉内存,第二种方法很丑。有没有更好的办法?
构造一个只包含感兴趣的变量的数据框,然后使用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