我需要找到对应于给定变量列表的每个观察中的最高值的变量名称。我知道我可以使用egen
来获取值本身:
egen newvar = rowmax(v1-vn)
但我不知道如何获得与最高值对应的变量名称。
答案 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