【问题标题】:How does sas allocate memory for data typessas如何为数据类型分配内存
【发布时间】:2014-05-11 10:54:48
【问题描述】:

假设我正在创建一个包含 3 个观察值和 2 个变量(即名称和 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 一样。

【问题讨论】:

    标签: sas


    【解决方案1】:

    使用默认选项,尤其是COMPRESS=NO,SAS 将为字符分配 25 个字节,并用空格 ('20'x) 填充未使用的字节。这不仅对存储很重要,而且对字符比较也很重要;虽然大多数比较会忽略尾随空格,但有时情况并非如此,需要显式修剪尾随空格。

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

    【讨论】:

      猜你喜欢
      • 2014-11-22
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 2012-12-26
      • 2018-10-06
      • 1970-01-01
      相关资源
      最近更新 更多