如何使用 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;
所以我仍然是 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;