标题: SAS 字符型变量长度问题 [打印本页] 作者: shiyiming 时间: 2011-4-24 08:57 标题: SAS 字符型变量长度问题 The following SAS programs are submitted:
data fltaten;
input jobcode $ salary name $;
cards;
FLAT1 70000 Bob
FLAT2 60000 Joe
FLAT3 30000 Ann
;
run;
data desc;
set flatten;
if salary > 60000 then
description = ‘Over 60’;
else
description = ‘Under 60’;
run;
What is the value of the variable DESCRIPTION when the value for SALARY is 30000?
答案是 Under 6
为什么会是这个结果呢?
谢谢解答作者: shiyiming 时间: 2011-4-24 10:21 标题: Re: SAS 字符型变量长度问题 错误有二:
1. 两个数据集的拼写错误“data fltaten”与“set flatten”
2. 单引号应该在英文输入状态
[code:313mxhvo]data flatten;
input jobcode $ salary name $;
cards;
FLAT1 70000 Bob
FLAT2 60000 Joe
FLAT3 30000 Ann
;
run;
data desc;
set flatten;
if salary > 60000 then
description = 'Over 60';
else
description = 'Under 60';
run;[/code:313mxhvo]作者: shiyiming 时间: 2011-4-24 22:32 标题: Re: SAS 字符型变量长度问题 如果不是误写,原因也可能是变量的长度已被定义为7,因此Under 60'的最后一个字节被截断。京剧作者: shiyiming 时间: 2011-4-25 14:46 标题: Re: SAS 字符型变量长度问题 data flatten;
input jobcode $ salary name $;
cards;
FLAT1 70000 Bob
FLAT2 60000 Joe
FLAT3 30000 Ann
;
run;
data desc;
length description $ 8;
set flatten;
if salary > 60000 then
description = 'Over 60';
else
description = 'Under 60';
run;
proc print;run;
/*SAS在读入数据时是以第一个读入的数据作为新变量的标准,在第一个数据不是最长数据的情况下要自定义新变量的长度*/