是否有可能在Stata中获得一个变量中的观察值,该变量对应于另一个变量的最大值? (类似于SQL中的this)。
编辑:你是对的,尼克。我对细节很清楚。我的数据集看起来像this(wfs Google Docs表;无法弄清楚如何格式化表格。)
我的目标是使用" col"创建两个变量。 " row"对应于"压力"的最大值旁边和条件。
答案 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 |
+-------------------------+
一些一般性说明:
注意关系,特别是当数据(保持为)整数时。
注意您的选择变量或任何其他变量的缺失值。 (例如,缺少值sort
到数据集的末尾。)
与maxima进行比较时,请注意精度问题。 (此答案中未记录,但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
的每个块的末尾。