以所有可能的方式比较43个变量

时间:2016-03-21 13:46:53

标签: performance loops performance-testing stata

我试图找出哪种方法是交叉比较43个变量(数据集,数据)的最佳方法

我需要将变量1与variable 2,3,4,5,6,7....43进行比较,然后将变量2与variable 1,3,4,5,6,7....43进行比较,依此类推,变量号为。 43.

我想我应该使用某种循环,但我无法如何有效地执行此操作。

我想我只需要某种伪代码。无论哪种方式,我想在Stata的do文件中执行此操作。

2 个答案:

答案 0 :(得分:2)

假设,例如变量var1-var43和"比较"第一个和第二个之间的区别与第二个和第一个之间的不同,这是你的问题所暗示的,那么

forval i = 1/43 { 
    forval j = 1/43 { 
        if `i' != `j' { 
              <code for comparison between var`i' and var`j'> 
        } 
    }
}

使用其他变量名称,foreach可能会更好。

答案 1 :(得分:0)

正如@NickCox建议的那样,你可以使用O(NxN)嵌套循环。如果这需要太长时间,如果你的“43”实际上是1000,那么就有更好的方法。对每个列表(间接)进行排序,即O(N logN),并运行合并顺序循环,即O(N),因此总共为O(N logN)。