R中的线性回归,具有可变数量的解释变量

Mic*_*ael 4 r linear-regression glm

可能重复:
在没有明确声明每个协变量的情况下使用glm指定R中
的公式如何简洁地从数据框中编写包含许多变量的公式?

我有一个Y值向量和一个X值矩阵,我想对它进行多元回归(即Y = X [第1列] + X [第2列] + ... X [第N列]

问题是我的矩阵(N)中的列数没有预先指定.我知道在R中,为了执行线性回归,你必须指定等式:

fit = lm(Y~X[,1]+X[,2]+X[,3])
Run Code Online (Sandbox Code Playgroud)

但是如果我不知道X矩阵中有多少列,我该怎么做呢?

谢谢!

Ari*_*man 15

三种方式,在提高灵活性方面.

方法1

使用公式表示法运行回归:

fit <- lm( Y ~ . , data=dat )
Run Code Online (Sandbox Code Playgroud)

方法2

将所有数据放在一个data.frame中,而不是两个:

dat <- cbind(data.frame(Y=Y),as.data.frame(X))
Run Code Online (Sandbox Code Playgroud)

然后使用公式表示法运行回归:

fit <- lm( Y~. , data=dat )
Run Code Online (Sandbox Code Playgroud)

方法3

另一种方法是自己构建公式:

model1.form.text <- paste("Y ~",paste(xvars,collapse=" + "),collapse=" ")
model1.form <- as.formula( model1.form.text )
model1 <- lm( model1.form, data=dat )
Run Code Online (Sandbox Code Playgroud)

在此示例中,xvars是一个字符向量,包含要使用的变量的名称.