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

在SAS中使用两个变量分配遭遇编号,sas,Sas,我试着用谷歌搜索和阅读这个问题,但我似乎找不到一个合适的解决方案。我希望这里有人能帮我。如果事情太简单的话,我很抱歉,但是我会很感激任何建议或帮助 我正在使用一个纵向数据集,我想为每个可能与我们实验室有过一次或多次互动(访问)的人(ID)分配一个遭遇编号。数据集看起来是这样的,我想创建一个新的变量(遭遇),为每个个体的每个独特遭遇按顺序编号 ID accession encounter ---------------------------------- 1 1234

我试着用谷歌搜索和阅读这个问题,但我似乎找不到一个合适的解决方案。我希望这里有人能帮我。如果事情太简单的话,我很抱歉,但是我会很感激任何建议或帮助

我正在使用一个纵向数据集,我想为每个可能与我们实验室有过一次或多次互动(访问)的人(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和登录号保持不变,它将不会保留相同的遭遇号码


提前感谢您为我指明了正确的方向。

您的结束语。在每个ID的第一个位置,您希望将其设置为0,在每个加入的第一个位置,您希望递增

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

run;

非常感谢你!这个很好用。我真的很感谢你的帮助!干杯!:)