SAS 编码帮助显示所有创建的变量
SAS coding help displaying all created variables
我正在尝试区分已确认患有高血压、不知道自己的状况和没有高血压的记录对象。我当前的代码仅显示 bpstatus 1 和 2,但我缺少 bpstatus 3 显示。 HTN=(1=高血压)(0=无高血压)... HAE(1=意识到高血压)(2=不知道高血压)
data new
set mergedata;
HTN=.;
If SBP >= 140 or DBP >= 90 then HTN = 1;
else if 0 < SBP < 140 and 0 < DBP < 90 then HTN = 0;
run;
proc print data=new;
run;
data new2;
set new;
BPSTATUS=.;
*3-level variable BPSTASTUS;
*diagnosed first;
if HTN=1 or HAE2=1 then BPSTATUS=1;
*undiagnosed;
if HTN=1 and HAE2=2 then BPSTATUS=2;
*normal;
if HTN=2 and HAE2=2 then BPSTATUS=3;
run;
proc print data=new2;
run;
proc freq data=new2;
table bpstatus;
run;
---------
BPSTATUS
Freq % Cum Freq Cum %
1 2354 67.76 2354 67.76
2 1120 32.24 3474 100.00
Frequency Missing = 4424
在此代码中:
data new
set mergedata;
HTN=.;
If SBP >= 140 or DBP >= 90 then HTN = 1;
else if 0 < SBP < 140 and 0 < DBP < 90 then HTN = 0;
run;
您将 HTN
初始化为缺失值,然后根据某些条件将其设置为 1 或 0。在随后的代码中,您检查这个:
if HTN=2 and HAE2=2 then BPSTATUS=3;
根据您第一个程序中的逻辑,HTN
永远不会是 2,这意味着 BPSTATUS
永远不会是 3。
我正在尝试区分已确认患有高血压、不知道自己的状况和没有高血压的记录对象。我当前的代码仅显示 bpstatus 1 和 2,但我缺少 bpstatus 3 显示。 HTN=(1=高血压)(0=无高血压)... HAE(1=意识到高血压)(2=不知道高血压)
data new
set mergedata;
HTN=.;
If SBP >= 140 or DBP >= 90 then HTN = 1;
else if 0 < SBP < 140 and 0 < DBP < 90 then HTN = 0;
run;
proc print data=new;
run;
data new2;
set new;
BPSTATUS=.;
*3-level variable BPSTASTUS;
*diagnosed first;
if HTN=1 or HAE2=1 then BPSTATUS=1;
*undiagnosed;
if HTN=1 and HAE2=2 then BPSTATUS=2;
*normal;
if HTN=2 and HAE2=2 then BPSTATUS=3;
run;
proc print data=new2;
run;
proc freq data=new2;
table bpstatus;
run;
---------
BPSTATUS
Freq % Cum Freq Cum %
1 2354 67.76 2354 67.76
2 1120 32.24 3474 100.00
Frequency Missing = 4424
在此代码中:
data new
set mergedata;
HTN=.;
If SBP >= 140 or DBP >= 90 then HTN = 1;
else if 0 < SBP < 140 and 0 < DBP < 90 then HTN = 0;
run;
您将 HTN
初始化为缺失值,然后根据某些条件将其设置为 1 或 0。在随后的代码中,您检查这个:
if HTN=2 and HAE2=2 then BPSTATUS=3;
根据您第一个程序中的逻辑,HTN
永远不会是 2,这意味着 BPSTATUS
永远不会是 3。