从R中的通用名称开始,将多个变量选择到模型中

时间:2014-07-30 10:00:27

标签: r

在SAS中,我们可以使用带有起始名称的冒号(:)选项启动多个变量。我想在R中做同样的建模目的。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

可能有很多方法可以做到这一点。这是一个带有正则表达式的表达式,它不能完全按照您的要求进行操作,但可能会起到作用:

x1 = rnorm(100)
x2 = rnorm(100)
z = rnorm(100)
a = rnorm(100)
y = x1+x2+z
d = data.frame(x1,x2,z,y)

X = as.matrix(d[,grepl("x",colnames(d))])
head(X)
m = lm(y~X+a)
summary(m)

答案 1 :(得分:0)

as.formula(paste("y~", paste(names(mydata)[substr(names(mydata), 1, 1)=="x"], collapse="+"))) -> myformula 为您在模型中使用的数据框myformula中名称以y开头的所有变量的x回归提供公式对象mydata,例如lm(myformula, data=mydata)。因此,您不会对数据框进行子设置,这可能会造成很大的麻烦。