假设我们正在处理这个荒谬的例子:
DF <- data.frame(Class=1:10,A=1:10,B=1:10,C=1:10)
然后你就得到了列的名称
Cols <- names(DF)
Cols <- Cols[! Cols %in% "Class"]
n <- length(Cols)
您构建所有可能的组合
id <- unlist(
lapply(1:n,
function(i)combn(1:n,i,simplify=FALSE)
)
,recursive=FALSE)
您将它们粘贴到公式中
Formulas <- sapply(id,function(i)
paste("Class~",paste(Cols[i],collapse="+"))
)
然后你循环它们以应用模型。
lapply(Formulas,function(i)
lm(as.formula(i),data=DF))
但请注意:如果您有多个列,这将很快使内存变得非常沉重,并导致实际上有数千个模型。您有 2^n - 1 个不同的模型,其中 n 是列数。
确保这就是您想要的,一般来说,强烈建议不要进行这种模型比较。当你这样做时,也忘记任何类型的推论。