如何格式化我创建的新变量?

时间:2019-01-26 19:50:53

标签: sas format

我正在尝试在SAS中创建一个新变量。我使用if逻辑来创建新的字符变量。但是,该变量被截断。如何格式化新变量,以便所有字符都出现?

DATA Clinic;
set stat201.clinic;
rename age_at_consent=Age ldiastolic=dbp lsystolic=sbp ldobp=datebp;
if smoking="" then smoking="Missing";
if smokecat=0 then smokecat_1="Never Smoker";
if smokecat=1 then smokecat_1="Current Everyday Smoker";
if smokecat=2 then smokecat_1="Former Smoker";
if smokecat=9 then smokecat_1="Never Assessed";
attrib smokecat_1 format =$25.;
drop smokecat;
rename smokecat_1= smokecat;
run;   

2 个答案:

答案 0 :(得分:3)

SAS将根据变量首次出现的时间定义变量。由于第一次出现是在此赋值语句中。

if smokecat=0 then smokecat_1="Never Smoker";

它将被定义为长度为12的字符变量。

在使用变量之前先定义它。您可以使用LENGTH语句

length smokecat_1 $25;

ATTRIB语句来定义变量。

attrib smokecat_1 length=$25;

附加$25.格式不会更改变量的长度。  这仅表示您希望SAS使用25个字符来显示值。但是变量仍然只有12个字符长。无需将任何格式附加到变量。格式是有关如何显示值的说明,而SAS已经知道如何显示字符值。

答案 1 :(得分:0)

为补充汤姆(Tom)的上述回答:

  

SAS将根据变量 type和length 的首次出现时间进行定义。

我同意在使用变量之前先定义变量是一种好习惯。