Код SAS (изменение по сравнению с базовой точкой времени) - PullRequest
0 голосов
/ 31 октября 2019

В клинических испытаниях систолическое и диастолическое артериальное давление измеряли до введения дозы (0 ч) и через 1,2,4,8 часа после введения дозы.

Изучалось двенадцать субъектов. Набор данных SAS имеет следующую структуру:

Длина переменного объема - 8 Метка-Номер субъекта Переменная-N-длина-8 Метка Номинальное время после введения дозы (часы)мм рт. ст.)

Какой код SAS можно использовать для расчета изменения по сравнению с базовой линией (Oh) в каждый момент времени, а затем для расчета среднего, минимального, максимального изменения по сравнению с базовой линией для 12 субъектов? Изменить: это то, что я пытался до сих пор

   data postbase;

 do until (last.vol);
 *** Only keep pre-dose values;
 set save.vitals (where=(not(ntime <= 0 )));
 by Vol Ntime;
 if Ntime <= 0 then bl = Sups;
 else do;
 chgbl = Sups - bl;
 output;
 end;
 end;
 run; 

1 Ответ

0 голосов
/ 31 октября 2019
data postbase;
set save.vitals;
by subject time volume;
retain baseline;
if time=0 then baseline=volume;
else change = volume - baseline;
run;

Я думаю, что ваш код слишком сложен, и я не смог разобрать имена ваших переменных, поэтому просто составил их.

Я устанавливаю базовый уровень громкости всякий раз, когда время = 0, а затем делаю изменения через раз. RETAIN приводит к тому, что значение остается до его сброса. Если у вас есть время, которое может не быть 0 или отсутствует базовая линия, то вам может потребоваться изменить запрос.

...