Создать новый набор данных с максимальными значениями - PullRequest
0 голосов
/ 01 сентября 2018

Это мой набор данных в Stata:

Dataset

Я хочу создать новый набор данных, содержащий по одной строке для каждого пациента: значение max , равное observation.


EDIT:

Я также хотел бы сохранить переменную date.

1 Ответ

0 голосов
/ 01 сентября 2018

Вы можете использовать команду 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 для более подробной информации.


EDIT:

Если вы хотите сохранить 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 |
     +-----------------------------------+
...