Я изо всех сил пытаюсь концептуализировать код, который я хотел бы разработать, который бы выводил среднее количество пациентов, увиденных поставщиком.Вот как выглядит фрагмент моего набора данных, который охватывает данные за 3 года (у меня есть три переменные, Patient_ID, имя поставщика и время, когда поставщик видел пациента, который отображается в формате даты / времени:
patient_fin first_Md_seen Provider_Seen_Date_Time
1 Bob 5/1/2018 4:19:00 AM
2 Bob 5/1/2018 4:29:00 AM
3 Bob 5/1/2018 4:30:00 PM
4 Sally 5/1/2018 7:39:00 AM
5 Sally 5/1/2018 7:49:00 AM
6 Sally 5/1/2018 8:55:00 PM
7 Bubba 5/3/2018 12:19:00 AM
8 Bob 5/3/2018 4:10:00 AM
....
Чтобы рассчитать количество пациентов, увиденных у поставщика, я написал следующий код:
data ED_TAT3;
SET ED_TAT2;
if patient_fin ne . then Patient_fin_count=1;
run;
proc means data = ED_TAT3;
class first_Md_seen;
var Patient_fin_count;
run;
Теперь мне нужно выяснить, сколько часов работал поставщик.Я могу разделить количество пациентов, увиденных на количество отработанных часов.
Я думаю, что я могу использовать переменную Provider_Seen_Date_Time в качестве прокси после выполнения следующего кода для получения часа 'hour = hour (datepart (Provider_Seen_Date_Time)) '.
Может ли такой код дать мне правильное количество часов, которое провайдер
data new1;
set new;
hour = hour (datepart(Provider_Seen_Date_Time));
if Provider_Name = 'Bob' and hour ne . then hour_worked = 1;
run;
Есть:
1) более точный или эффективный (тамЕсть сотни различных провайдеров) способ выяснить общее количество часов, отработанных на одного провайдера?
ИЛИ
2), который является более идеальным кодом, чтобыпросто определите количество пациентов в час, которые видел поставщик.
Желаемый вывод:
Provider Avg Patients Seen per Hour
Bob 5
Sally 4
Bubba 6
Заранее спасибо!