可能重复:
Specifying formula in R with glm without explicit declaration of each covariate
how to succinctly write a formula with many variables from a data frame?
我有一个Y值向量和一个X值矩阵,我想对它进行多元回归(即Y = X [列1] + X [列2] + ... X [列N])
问题是我的矩阵(N)中的列数未预先指定。我知道在R中,为了执行线性回归,你必须指定等式:
fit = lm(Y~X[,1]+X[,2]+X[,3])
但如果我不知道X矩阵中有多少列,我该怎么做呢?
谢谢!
答案 0 :(得分:15)
三种方式,提高灵活性。
方法1
使用公式表示法运行回归:
fit <- lm( Y ~ . , data=dat )
方法2
将所有数据放在一个data.frame中,而不是两个:
dat <- cbind(data.frame(Y=Y),as.data.frame(X))
然后使用公式表示法运行回归:
fit <- lm( Y~. , data=dat )
方法3
另一种方法是自己建立公式:
model1.form.text <- paste("Y ~",paste(xvars,collapse=" + "),collapse=" ")
model1.form <- as.formula( model1.form.text )
model1 <- lm( model1.form, data=dat )
在此示例中,xvars是一个包含要使用的变量名称的字符向量。