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



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

我试图创建2个计数器变量:第一个- counttreatmentvisited计数+1每当文件夹名称变量在我的数据集有任何值除了"访问1筛选1","访问2筛选2","访问17安全FU"第二个- COUNTETPATIENT计数+1每当DSTERM2变量在我的数据集中有任何值除了'Complete'在得到这2个计数器变量之后,我只想按照公式计算并显示在输出中EEOT_RATE:EEOT_RATE=COUNTETPATIENT/(counttreatment访问者/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;

错误快照

SAS retain语句的语法为:

retain COUNTTREATMENTVISITS 0;

查看这里的文档:https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lestmtsref/p0t2ac0tfzcgbjn112mu96hkgg9o.htm#p115mm1hsepln9n11cxtkk7wejim

最新更新