2015-12-26 27 views
2

我试过谷歌和周围的这个问题,但我似乎无法找到一个合适的解决方案。我希望这里有人能帮助我。对不起,如果它太简单了,但我会感谢任何建议或帮助。使用SAS中的两个变量分配遇到号码

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

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和登录号保持一样。

非常感谢您帮助我指出正确的方向。

回答

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; 
+0

非常感谢!这工作很好。我非常感谢你的帮助!干杯! :) – Alex

相关问题