【发布时间】:2012-08-26 19:21:54
【问题描述】:
我有一个数据框 dm 和一些虚拟变量 d1、d2、d3。我想创建一个列表,dummies,并以简单的方式使用它,例如
lm(y~dummies+x,data=dm)
有可能吗?
我找到了两种方法,但我不喜欢它们:
创建一个额外的数据框
dummies。使用类似
formula(paste('y~',dummies,...)的东西
第一种方法会吃掉内存,第二种方法很丑。有没有更好的办法?
【问题讨论】:
-
我会走第二条路,没问题。
-
从
data删除所有其他列,然后使用formula = y ~ . -
formula是标准的 R 方法,无论您的审美观点如何。要实现 Andrie 的方法,您可以在lm中使用子集数据参数:data=subset(dm, select( c(y,dummies) ) -
@DWin 这是一个不错的成语,但我认为您的意思是
data=subset(dm, select=c(y, dummies)),或者确实是data=dm[, c("y", "dummies")],考虑到subset的固有危险,这样会更安全。 -
同意你的第一个。关于第二个选项,我认为“傻瓜”不会被扩展,应该是
names(dummies)未引用。
标签: r regression