2

我在数据框 Data1 中有一个 100 列的列表。这些变量之一是因变量。其他都是预测者。

我需要将 99 个预测变量提取到一列(例如varlist)中以用于下面的等式

equation <- as.formula(paste('y', "~", paste(varlist, collapse="+"),collapse=""))

我可以dput在数据框上使用来提取所有列,但我无法从列表中删除因变量 y:

Varlist <- dput(names(Data1)) 
4

1 回答 1

7

走不同的路线会更合适。如果您想在数据框中包含除响应变量之外的所有其他变量,您可以使用它y ~ .来指定它。

fakedata <- as.data.frame(matrix(rnorm(100000), ncol = 100))
names(fakedata)[1] <- "y"

o <- lm(y ~ ., data = fakedata)

这使用 fakedata 中的 99 个其他列作为预测变量和“y”作为响应来拟合回归并将其存储到“o”中


编辑:如果要排除某些变量,可以从数据集中排除这些变量。下面从第 100 列删除第 10 列,在第 2-9 列留下 y 回归

o <- lm(y ~ ., data = fakedata[,-(10:100)])
于 2012-06-13T05:04:35.243 回答