如何使用 if 条件创建计数器变量

How to create counter variable with if condition

所以我仍然是 SAS 的新手,因此非常感谢任何帮助。

我正在尝试创建 2 个计数器变量: 第一个-每当我的数据集中的 FOLDERNAME 变量具有除 'Visit 1 Screening 1'、'Visit 2 Screening 2'、'Visit 17 Safety FU' 以外的任何值时,COUNTTREATMENTVISITS 计数 +1 第二个 - 每当我的数据集中的 DSTERM2 变量具有 'Complete' 以外的任何值时,COUNTETPATIENT 计数 +1 在直接获得这两个计数器变量后,我只想根据公式计算并显示在输出 EEOT_RATE 中:EEOT_RATE=COUNTETPATIENT/(COUNTTREATMENTVISITS/1000)

我已经做了一些 SAS 代码(使用 Cluepoints 平台进行临床试验)但是我无法克服错误(见下面的代码和错误快照):

data RAND1 (keep= CP_PATIENT CP_REGION CP_CENTER RANDYN RANDYN_STD RANDOMIZED_AT 
RANDOMIZED_AT_INT);
set data_in.rand;
where RANDYN='Yes';
by FOLDERNAME;
retain COUNTTREATMENTVISITS=0;
if FOLDERNAME NOT in('Visit 1 Screening 1','Visit 2 Screening 2','Visit 17 Safety FU') then 
COUNTTREATMENTVISITS+1;
run;

proc sort data = RAND1;
by CP_PATIENT; 
run;

data DS1 (keep = CP_PATIENT CP_REGION CP_CENTER ET DSTERM2 DSCONT FOLDERNAME);
set data_in.DS; 
retain COUNTETPATIENT=0;
if strip(DSTERM2) NE 'Completed' then COUNTETPATIENT+1; 
run;

proc sort data = DS1;
by CP_PATIENT; 
run;

data data_out.output; 
merge RAND1 (in=a) DS1 (in=b);
by CP_PATIENT;
if a;
if CP_PATIENT='' then delete;

EEOT_RATE=COUNTETPATIENT/(COUNTTREATMENTVISITS/1000);
run;

Error snapshot

保留语句的 SAS 语法为:

retain COUNTTREATMENTVISITS 0;

在此处查看文档:https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lestmtsref/p0t2ac0tfzcgbjn112mu96hkgg9o.htm#p115mm1hsepln9n11cxtkk7wejim