【发布时间】:2018-08-22 14:48:40
【问题描述】:
我有一个 60 维的嵌套循环,即我将 60 个循环相互嵌套。在 Stata 中,MWE 如下所示:
forvalues i = 1/60 {
forvalues j = 1/60 {
forvalues k = 1/60 {
forvalues l = 1/60 {
... imagine the 56 remaining loops here
}
}
}
}
R 中的等价物是:
for(i in 1:60) {
for(j in 1:60) {
for(k in 1:60) {
for(l in 1:60) {
... imagine the 56 remaining loops here
}
}
}
}
这里的目标是避免在我的代码中输入所有 60 个级别,而是为循环结构本身创建一个循环。这个问题显得如此微不足道。但由于某种原因,我正在努力想出一个解决方案。
感谢您的任何建议。
附加信息:
我有一个包含 60 个解释变量的数据集,并希望对这些变量的所有可能组合进行回归分析。更具体地说,我分别对所有 60 个解释变量运行因变量的单变量回归并计算某些标准。然后我在估计方程中添加第二个回归量并再次计算标准。 IE。 reg DependentVar ExplVar1 ExplVar2, reg DependentVar ExplVar1 ExplVar3, ..., reg DependentVar ExplVar60 ExplVar59。根据计算的标准,该回归树的一个分支要么被推进,要么被终止。例如。第一个分支reg DependentVar ExplVar1 ExplVar2 要么继续增长为reg DependentVar ExplVar1 ExplVar2 ExplVar3、reg DependentVar ExplVar1 ExplVar2 ExplVar4 等,要么终止为reg DependentVar ExplVar1 ExplVar2。包含不止一次解释性因素的分支也会被删除 - 例如reg DependentVar ExplVar1 ExplVar1 或reg DependentVar ExplVar1 ExplVar2 ExplVar1。总的来说,我因此设计了一种模型选择方法。我知道已经存在的模型选择命令,但需要一个针对给定数据集的特定属性定制的命令。
【问题讨论】:
-
也许缩小并告诉我们您要达到的最终目标。很少有这种方法不能以更好的方式解决。
-
我很难想象这将是您最有效的方法。您最终将获得 60^60(大约 5 *10^106)次迭代。如果您给出最终目标,人们可能会提出更好的方法
-
我将 60 个循环相互嵌套。...可能不是。您的问题读作XY Problem,您在其中为您尝试的 Y 解决方案寻求帮助,以解决您不共享的实际 X 问题。给我们更多的背景和问题,你可能不需要任何循环!
-
我编辑了这个问题。它现在提供描述问题的附加信息。
-
听起来你想要相当标准的前向逐步回归,它由 olsrr 包提供,请参阅:cran.r-project.org/web/packages/olsrr/vignettes/…。如果——出于某种原因——你想从头开始写这个,你几乎肯定想使用递归而不是一堆嵌套的 for 循环。
标签: r loops stata nested-loops