如何为落入最高四分位数的观测值生成累积变量

时间:2016-06-02 23:03:48

标签: stata

我有4个变量

  • 高度
  • 重量
  • 手臂长度
  • 腿的长度

我想创建一个变量(new_var),它是一个汇总数,等于我的观察值落入每个变量的最高四分位数的次数。

例如,如果您在上述变量中​​的一个(且仅一个)变量的最高四分位数中得分,则new_var中的值将为1。如果你在2个变量的最高四分位数中得分(如果第二个和第五个是第一个和第二个并不重要),你在new_var中得分为2,依此类推。有几种可能的组合。

这个想法是将参与者得分落入最高四分位数的变量数加在一起以创建摘要数。

2 个答案:

答案 0 :(得分:2)

每次观察位于变量的最高四分位数时,您可以创建全零变量命名分数并为其添加1:

sysuse auto, clear
gen score = 0
foreach var of varlist price mpg weight headroom {
    xtile q = `var', nq(4)
    replace score = score + cond(q==4,1,0)
    drop q
} 
tab score

答案 1 :(得分:2)

如果你想知道的是值是否高于上四分位数,你可以直接使用summarize。注意任何变量的缺失值。

sysuse auto, clear 

gen score = 0 

quietly foreach v in trunk displacement length weight { 
    su `v', detail 
    noisily di "`v'{col 20}" r(p75)
    replace score = cond(missing(`v'), ., score + (`v' > r(p75))) 
} 

tab score