我在数据框Data1中有100列的列表。其中一个变量是因变量。其他人是预测者。
我需要将99个预测变量提取到一个列中(比如varlist
),以便在下面的等式中使用
equation <- as.formula(paste('y', "~", paste(varlist, collapse="+"),collapse=""))
我可以在数据帧上使用dput
来提取所有列,但我无法从列表中删除因变量y:
Varlist <- dput(names(Data1))
答案 0 :(得分: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)])