我遇到一个问题,我认为它可以轻松解决,但是我无法找到答案。
我有一个excel文件,其中包含一定数量的列,这些列包含具有一定自变量(V1,V2,V3)的交通量序列(T1,T2),我必须向其建立所有线性模型的组合。我本来可以以较慢的方式执行此操作,但是有人要求我使用循环进行优化,而这正是我在努力的地方。
这是一个可重复的示例:
isNewUser
这将创建一个列表,其中包含Traffic Series T1的线性模型的所有可能组合。但是,我有数据,有时我可能会有几个流量系列列,我希望模型在这些列上进行迭代,以便将所有组合存储在列表中。我尝试将以下内容添加到代码中:
set.seed(1)
rep.example<-data.frame(V1=rnorm(25,15),V2=rnorm(25,5),V3=runif(25,0.4),T1=rnorm(25,12),T2=rnorm(25,35))
ind.vars = c("V1","V2","V3")
Comb.Matrix <- expand.grid(c(TRUE, FALSE), c(TRUE, FALSE), c(TRUE, FALSE))
names(Comb.Matrix) <- ind.vars
Comb.Matrix <- Comb.Matrix[-(dim(Comb.Matrix)[1]),]
allModelsList <- apply(Comb.Matrix,
1,
function(x) as.formula(paste(c(" T1 ~ ",
ind.vars[x]), collapse = " + ")))
我希望它进入Series的每个值,并以'T1〜Var Combinations'的形式对该值进行所有可能的组合,而对于T2和更多最终列使用相同的值。...
谢谢。
答案 0 :(得分:0)
通过以下操作,我设法解决了该问题:
allModelsList=list()
for (i in 1:length(Series)){
allModelsList <- append(
allModelsList,
apply(Comb.Matrix, 1, function(x) as.formula(paste(c(paste(" ", Series[i], " ~ "), ind.vars[x]), collapse = " + ")))
)
}
对于“系列”中的每个索引/列,模型都会执行所有可能的变量组合。