sas如何为数据类型分配内存

时间:2014-05-11 10:54:48

标签: sas

假设我创建的数据集包含3个Observations和2个变量,即name和id。 如果在3次观察中只有1次观察需要25个字符。

DATASET practice;
INPUT Name  $25. Id;
DATALINES;
a 20        *1st observation;
abcdefghijklmnopqrstuvwxy 10     *2nd observation;
abc 15;      *3rd observation
run;

现在我的问题是,sas会为所有3个观察分配25个字符,还是会像varchar一样。

1 个答案:

答案 0 :(得分:2)

使用默认选项,特别是COMPRESS=NO,SAS将为字符分配25个字节,并用空格填充未使用的字节('20'x)。这不仅对存储很重要,对于字符比较也很重要;虽然大多数比较忽略了尾随空格,但有时候这不是真的,并且需要明确地修剪尾随空格。

但是,如果您使用OPTION COMPRESS=YESOPTION COMPRESS=CHAR,它会压缩写出的数据集中的字段,使其更像varchar(它不会占用太多浪费的额外空间)。这些空间在技术上仍然存在,可能需要在程序中考虑,但它们不需要完整字节的存储。