SAS数据集的大小在使用where子句时增加
我有一个大小接近20GB的SAS数据集, 我试图使用where子句,但无法这样做,因为数据集的大小正在膨胀,并且我得到的错误是:SAS文件已满。 当我上次查看在库中创建的数据集时,其大小接近45GB。 我的代码是:SAS数据集的大小在使用where子句时增加,sas,enterprise-guide,Sas,Enterprise Guide,我有一个大小接近20GB的SAS数据集, 我试图使用where子句,但无法这样做,因为数据集的大小正在膨胀,并且我得到的错误是:SAS文件已满。 当我上次查看在库中创建的数据集时,其大小接近45GB。 我的代码是: data fin2; set fin; where segment = "a"; run; 段有两个可能的值a和b(a接近行的50%) 有谁能告诉我发生了什么,为什么数据集的大小在增加。 我也尝试使用if命令执行此操作,但没有效果。您提供的代码将创建新的数据集fin2保持现有数据集
data fin2;
set fin;
where segment = "a";
run;
段有两个可能的值a和b(a接近行的50%)
有谁能告诉我发生了什么,为什么数据集的大小在增加。
我也尝试使用if命令执行此操作,但没有效果。您提供的代码将创建新的数据集
fin2
保持现有数据集fin
不变。因此,我假设您不满意fin
有20GB,而fin2
有45GB
我希望fin
是较早创建的,未存储在工作库中,并且启用了一些压缩选项。要进行验证,请检查以下输出:
proc contents data=fin;run;
相反,我希望fin2
的压缩是未启用的
要减小fin2
表的大小,请尝试使用char
或binary
压缩选项:
data fin_segment_a (compress=char);
set fin;
where segment = "a";
drop segment;
run;
非常感谢,这很有帮助。