获取与观察中的最大值对应的变量名称

时间:2014-11-07 20:09:27

标签: max stata

我需要找到对应于给定变量列表的每个观察中的最高值的变量名称。我知道我可以使用egen来获取值本身:

egen newvar = rowmax(v1-vn)

但我不知道如何获得与最高值对应的变量名称。

1 个答案:

答案 0 :(得分:3)

可能还有其他方法,但您可以在egen结果的基础上进行构建。下面是循环变量以查找具有最大值的变量的示例。

// generate random data
clear
set obs 10
forval i=1/5    {
    gen r`i'=round(10*runiform())
}

egen maxval=rowmax(r1-r5)  // find maximum value
gen str20 maxvar="" // create string variable to store matched results

// find variables with the same value as maxval and add them to maxvar
foreach var of varlist r1-r5    {
    replace maxvar=maxvar+" "+"`var'" if maxval==`var'
}

list