在SAS中,我们可以使用带有起始名称的冒号(:)选项启动多个变量。我想在R中做同样的建模目的。
有什么建议吗?
答案 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)
。因此,您不会对数据框进行子设置,这可能会造成很大的麻烦。