带输入语句的SAS流内上载:字符串截断
我编写此代码段是为了在SAS中加载数据集带输入语句的SAS流内上载:字符串截断,sas,Sas,我编写此代码段是为了在SAS中加载数据集 data eser7.ateneo; infile datalines missover; input FAC $ AA0506 AA0607 AA0708; datalines; Architettura 200 200 200 Economia 680 680 680 Giurisprudenza - 350 400 Ingegneria 470 470 600 Lettere - - 150 SMFN -
data eser7.ateneo;
infile datalines missover;
input FAC $ AA0506 AA0607 AA0708;
datalines;
Architettura 200 200 200
Economia 680 680 680
Giurisprudenza - 350 400
Ingegneria 470 470 600
Lettere - - 150
SMFN - - 180
ScPolitiche - 300 300
;
run;
proc print data = eser7.ateneo;
run;
在结果查看器中,我注意到第一个变量FAC截断了字符串。我无法解决为FAC列设置固定大小的问题,所以哪种方法是最好的动态调整长度的方法?谢谢,SAS列的大小是固定的。您需要设置尽可能长的大小(通常通过
LENGTH
语句,或在输入时使用informat),以便告诉SAS为列留出多少空间
data eser7.ateneo;
infile datalines missover;
length FAC $20;
input FAC $ AA0506 AA0607 AA0708;
datalines;
Architettura 200 200 200
Economia 680 680 680
Giurisprudenza - 350 400
Ingegneria 470 470 600
Lettere - - 150
SMFN - - 180
ScPolitiche - 300 300
;
run;
proc print data = eser7.ateneo;
run;
如果无法确定正确的最大大小,可以使用最大可能大小($32767)读入数据,然后使用压缩(options compress=YES;
或options compress=CHAR;
)或输入后分析数据集并将长度修改为较短的大小。但不能有每行的长度;压缩确实提供了一些接近VARCHAR功能的功能(但仍然需要一个最大大小集),但代价是一些速度