1

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

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

我的目标是创建两个变量,其“col”和“row”值分别对应于“压力”的最大值和条件。

4

1 回答 1

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. 与最大值比较时要注意精度问题。(此处未在此答案中记录,但search precision, faq会引发许多讨论。)

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,您将需要一些不同的东西,因为缺失将被排序到 和 的每个块的side末尾condition

于 2013-04-04T15:32:54.667 回答