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

发布于 2025-01-29 15:34:41 字数 1220 浏览 2 评论 0原文

因此,我仍然是SAS的新手,因此,任何帮助都将受到极大的赞赏。

我正在尝试创建2个计数器变量: 第一个 - 每当我的数据集中的foldername变量都有任何值,除了“访问1筛选1”,“访问2筛选2”,'访问17安全fu' 当我的数据集中的dsterm2变量有任何值时,第二个 - 计数+1,除了“完整” 完成这两个计数器变量后,我只想按照公式计算和显示在output eeot_rate中:eeot_rate = countetPatient/(counttreatmentvisits/1000)

我已经做了一些SAS代码(我无法使用cluepoints for临床试验),但是我无法进行临床试验)通过错误(请参阅下面的代码和错误快照):

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;

错误快照

So I am still a newbie in SAS and therefore any help is greatly appreciated.

I am trying to create 2 counter variables:
1st one - COUNTTREATMENTVISITS that counts +1 whenever FOLDERNAME variable in my dataset has any values except 'Visit 1 Screening 1','Visit 2 Screening 2','Visit 17 Safety FU'
2nd one - COUNTETPATIENT that counts +1 whenever DSTERM2 variable in my dataset has any values except 'Complete'
after getting these 2 counter variables straight I just want to calculate and display in output EEOT_RATE as per the formula :EEOT_RATE=COUNTETPATIENT/(COUNTTREATMENTVISITS/1000)

I already did some SAS code(using Cluepoints platform for clinical trials) but I can't get past the errors(see below code and error snapshot):

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月牙弯弯 2025-02-05 15:34:41

SAS Syntax for retain statement is:

retain COUNTTREATMENTVISITS 0;

See documentation here :

SAS Syntax for retain statement is:

retain COUNTTREATMENTVISITS 0;

See documentation here : https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lestmtsref/p0t2ac0tfzcgbjn112mu96hkgg9o.htm#p115mm1hsepln9n11cxtkk7wejim

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文