我尝试通过 Google 搜索并阅读有关此问题的信息,但似乎找不到适当的解决方案。我希望这里有人能帮助我。如果它太简单,我很抱歉,但我将不胜感激任何建议或帮助。
我正在使用纵向数据集,我想为可能与我们实验室有过一次或多次互动的每个人 (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;
关于sas - 在 SAS 中使用两个变量分配遭遇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34468752/