【发布时间】:2017-09-14 18:32:09
【问题描述】:
我是一名新的 SAS 用户,在创建我想要的数据子集时遇到了一些困难。 我有调查数据,提示患者多次完成调查。如果他们完成了调查,他们将在 30 天内不会收到提示。如果他们拒绝或什么都不做,他们将再次收到提示(可能在 30 天内)。
这是我的数据表:
Data Have;
Input RowId $ PatientId $ Action $ Date;
Datalines;
1 101 Prompted 201603
2 101 Prompted 201605
3 101 Yes 201605
4 102 Prompted 201606
5 103 Prompted 201612
6 103 No 201612
7 104 Prompted 201603
8 104 Yes 201603
9 105 Prompted 201608
10 105 Yes 201608
11 105 Prompted 201702
12 105 No 201702
13 106 Prompted 201703
14 106 Yes 201703
15 106 Prompted 201706
16 106 Yes 201706
run;
我想创建两个数据子集 1) 受访者 -当有多个提示时,我想保留已完成调查的那个 -如果随着时间的推移有多个调查,我想保留最早的调查
2) 未答复者 - 被提示但没有做任何事情的患者被视为未回答者
我想产生这两个子集:
受访者:
Data Yes;
Input RowId $ PatientId $ Action $ Date;
Datalines;
3 101 Yes 201605
8 104 Yes 201603
10 105 Yes 201608
14 106 Yes 201703
run;
未答复者:
Data No;
Input RowId $ PatientId $ Action $ Date;
Datalines;
4 102 Prompted 201606
6 103 No 201612
run;
我知道这些数据不是很直观,我已尽力在此解释。任何帮助是极大的赞赏!
【问题讨论】:
-
请添加您尝试过的代码,并描述为什么它不起作用(它做错了什么)。