【问题标题】:How to generate a cumulative variable for observations that fall into the highest quartile如何为落入最高四分位数的观察生成累积变量
【发布时间】:2016-06-02 23:03:47
【问题描述】:

我有 4 个变量

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

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

例如,如果您在上述变量中​​的一个(且只有一个)中得分最高,那么您在new_var 中的值将是一。如果您在 2 个变量中得分最高的四分位数(第二个和第五个是否是第一个和第二个无关紧要),您在 new_var 中的得分将是 2,依此类推。有几种可能的组合。

这个想法是将参与者得分落入最高四分位数的变量数量相加,以创建一个汇总数字。

【问题讨论】:

    标签: stata


    【解决方案1】:

    如果您只想知道值是否高于上四分位数,您可以直接使用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 
    

    【讨论】:

      【解决方案2】:

      您可以创建名为 score 的全零变量,并在每次观察值位于变量的前四分位数时将其加 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多