Stata:将具有最大值的变量名称另存为字符串

Stata:将具有最大值的变量名称另存为字符串,stata,Stata,我在同一行中有几个变量:x1x2x3x4 使用egen和rowmax函数,我创建了一个新变量,其中包含具有最高值的x*值: egen max_x=行最大值(x1 x2 x3 x4) 但是,我不想保存最大值,而是想将包含最大值的变量的名称保存为字符串。我怎样才能做到这一点呢?可能只有一个命令可以做到这一点,但这里有一种方法 // generate some test data set obs 10 forvalues i=1/4 { gen float x`i' = runiform()

我在同一行中有几个变量:x1x2x3x4

使用egen和rowmax函数,我创建了一个新变量,其中包含具有最高值的x*值:

egen max_x=行最大值(x1 x2 x3 x4)


但是,我不想保存最大值,而是想将包含最大值的变量的名称保存为字符串。我怎样才能做到这一点呢?

可能只有一个命令可以做到这一点,但这里有一种方法

// generate some test data
set obs 10
forvalues i=1/4 {
    gen float x`i' = runiform()
}

tempvar valmax argmax
gen `valmax' = x1
gen `argmax' = "x1"
foreach v of varlist x2-x4 {
    // does value beat the current highest value?
    replace `argmax' = "`v'" if `v' > `valmax' & !mi(`v')
    replace `valmax' = max(`valmax', `v')
}

list

您还应该考虑如何处理关系和缺失值。