我编写了此代码段以在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 - - 180
ScPolitiche - 300 300
;
run;
proc print data = eser7.ateneo;
run;
在结果查看器中,我注意到第一个变量FAC已经截断了字符串。我无法解决为FAC栏设置固定大小的问题,那么哪种方法可以适应动态长度呢? 感谢
答案 0 :(得分:1)
SAS列具有固定大小。您需要设置尽可能长的大小(通常通过LENGTH
语句,或使用输入信息),以告知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功能的东西(但仍然需要设置最大大小),代价是速度。