SAS-根据另一个变量的值将缺失设置为一系列列



我目前有一个数据集,其中包括每个人的ID,然后是名为day1到day1826的变量,这些变量是这些天内药物可用性的二进制指标。我需要在特定的日子里审查个人。例如,如果一个人需要在day500被审查,那么我需要将day500设置为missing,以及之后的每一天变量(即day500到day1826)。我有一个名为time_for_censor的变量,它指示哪一天开始丢失。

我如何在SAS中编写此代码?

我试着用这样的循环来编码它:

array daydummy (1826) day1-day1826; 
if time_for_censor ne . then do time_for_censor=1 to 1825; 
daydummy(time_for_censor)=.; 
daydummy(time_for_censor + 1) =.; 
end; 

从审查日期到数组末尾进行循环。

array daydummy (1826) day1-day1826; 
if not missing(time_for_censor) then do index=time_for_censor to 1826; 
daydummy(index)=.; 
end; 
drop index;

您可能需要将do循环的下界更改为time_for_censor+1,具体取决于值在审查日期是否有效。

最新更新