创建具有最大值的新数据集

时间:2018-09-01 10:55:53

标签: stata

这是我在Stata中的数据集:

Dataset

我想创建一个新数据集,该数据集为每个患者提供一行:observation max 值。


编辑:

我还想保留date变量。

1 个答案:

答案 0 :(得分:3)

您可以使用collapse命令来获取所需的内容:

clear

input patient observation
17133 2.2
17133 2.3
17154 3.2
17154 1.2
17154 2.2
end

collapse (max) observation, by(patient)

list, abbreviate(15)

     +-----------------------+
     | patient   observation |
     |-----------------------|
  1. |   17133           2.3 |
  2. |   17154           3.2 |
     +-----------------------+

输入help collapse以获得更多详细信息。


编辑:

如果您也想保留date

clear

input patient observation str10 date1
17133 2.2 "01jul1965"
17133 2.3 "30jun1965"
17144 4.1 "01jul1965"
17144 3.2 "30jun1965"
17144 1.5 "30jun1965"
17154 3.2 "30jun1965"
17154 1.2 "01jul1965"
17154 2.2 "01jul1965"
end

generate date2 = daily(date1, "DMY")
format %tdDDMonCCYY date2

bysort patient (observation): keep if _n == _N

list patient observation date2, abbreviate(15)

     +-----------------------------------+
     | patient   observation       date2 |
     |-----------------------------------|
  1. |   17133           2.3   30Jun1965 |
  2. |   17144           4.1   01Jul1965 |
  3. |   17154           3.2   30Jun1965 |
     +-----------------------------------+