在SAS中使用两个变量分配遭遇号码

时间:2015-12-26 05:26:04

标签: sas

我曾尝试使用谷歌并阅读此问题,但我似乎无法找到适当的解决方案。我希望有人可以帮助我。对不起,如果它太简单了,我会很感激任何建议或帮助。

我正在使用纵向数据集,我想为每个人(ID)分配一个遭遇号码,这个人可能与我们的实验室(accesssion)有过一次或多次交互。数据集看起来像这样,我想创建一个新的变量(遭遇),按顺序为每个人的每个独特遭遇编号。

ID    accession    encounter
----------------------------------
1     1234         1
1     1234         1
1     1235         2
1     1236         3
1     1236         3
2     1000         1
2     1001         2
2     1001         2
3     1111         1
3     1112         2
4     1001         1
4     1001         1

我尝试过使用first.variable语句,例如:

data new; set old;
by id accession;
if first.id & first.accession then encounter=1;
else encounter+1;
run;

我没有成功,因为如果id和登录号都保持不变,它将不会保留相同的遭遇号码。

提前感谢你帮我指出了正确的方向。

1 个答案:

答案 0 :(得分:2)

你的亲密关系。在每个ID的第一个,您要将其设置为0,并在每个要加入的加入的第一个。

data new; set old;
by id accession;
Retain encounter;
if first.id then encounter=0;
If first.accession then encounter+1;

run;