获取与Stata中另一个变量的最大值对应的值

时间:2013-04-04 14:55:26

标签: stata

是否有可能在Stata中获得一个变量中的观察值,该变量对应于另一个变量的最大值? (类似于SQL中的this)。

编辑:你是对的,尼克。我对细节很清楚。我的数据集看起来像this(wfs Google Docs表;无法弄清楚如何格式化表格。)

我的目标是使用" col"创建两个变量。 " row"对应于"压力"的最大值旁边和条件。

1 个答案:

答案 0 :(得分:2)

这是相当普遍的,但确实是肯定的简短回答。以下是两个具体示例,一个用于总体最大值,另一个用于组内的最大值。

. sysuse auto, clear
(1978 Automobile Data)

. su mpg , meanonly

. list weight if mpg == r(max)

     +--------+
     | weight |
     |--------|
 71. |  2,040 |
     +--------+

. egen maxmpg = max(mpg), by(rep78)

. list rep78 maxmpg weight if mpg == maxmpg

    +-------------------------+
    | rep78   maxmpg   weight |
    |-------------------------|
 7. |     .       26    2,230 |
14. |     3       29    2,110 |
18. |     2       24    2,750 |
40. |     1       24    2,730 |
45. |     .       26    2,520 |
    |-------------------------|
52. |     2       24    2,690 |
63. |     4       30    1,980 |
71. |     5       41    2,040 |
    +-------------------------+

一些一般性说明:

  1. 注意关系,特别是当数据(保持为)整数时。

  2. 注意您的选择变量或任何其他变量的缺失值。 (例如,缺少值sort到数据集的末尾。)

  3. 与maxima进行比较时,请注意精度问题。 (此答案中未记录,但search precision, faq引发了许多讨论。)

  4. http://www.stata-journal.com/article.html?article=dm0055讨论了相关技术。

    (更新)

    听起来像

    . bysort side condition (pressure) : gen rowmax = row[_N]
    
    . bysort side condition (pressure) : gen colmax = col[_N]
    

    有关by:的教程,请参阅http://www.stata-journal.com/sjpdf.html?articlenum=pr0004这是您应阅读的免费.pdf的链接。和以前一样,如果pressure上缺少值,则需要不同的内容,因为缺失将排序到sidecondition的每个块的末尾。