sas - 在 SAS 中使用两个变量分配遭遇数

标签 sas

我尝试通过 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/

相关文章:

sas - 宏变量: Apparent symbolic reference not resolved

sql - SAS:选择多列值的频率

sas - 如何获取存储过程的ID?

sas - 如何将大数据集导入SAS?

sas - 如果本地没有 SAS,如何使用批处理运行 SAS

r - 将混合模型公式从 SAS 转换为 R

r - 相当于 R 中混合的 SAS 过程

sas - 如何在更新宏变量的数据步骤中调用宏并立即使用该值?

regex - 如何将变量访问中包含 "Phone Follow-Up W"的值改为“Follow-Up W?

sas - 如何在sas中生成相同的随机变量