是否有可能在 Stata 中获得一个变量中对应于另一个变量最大值的观察值?(在 SQL 中与此类似)。
编辑:你是对的,尼克。我对细节很轻。我的数据集看起来像这样(wfs Google Docs 表;无法弄清楚如何在此处格式化表)。
我的目标是创建两个变量,其“col”和“row”值分别对应于“压力”的最大值和条件。
这是相当笼统的,但确实是的,这是简短的回答。这里有两个具体的例子,一个是整体最大值,另一个是组内最大值。
. 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 |
+-------------------------+
一些一般注意事项:
注意平局,尤其是当数据(保存为)整数时。
注意您的选择变量或任何其他变量上的缺失值。(例如,缺失值被sort
添加到数据集的末尾。)
与最大值比较时要注意精度问题。(此处未在此答案中记录,但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
。