如何导入压缩的“ .sas7bdat”文件?

时间:2019-07-17 15:07:41

标签: sas zip

我有一个 sas7bdat 格式文件,但已压缩。

我可以解压缩文件并对其进行处理,但这使我失去了硬盘空间和时间。

所以我在SAS上尝试了以下代码:

filename myfile ZIP 'C:\...\data.zip' member="data.sas7bdat" ;

data yoyo;
   infile myfile (data.sas7bdat);
   input; 
   put _infile_;
run;

但是我在WORK库中得到了一个空的yoyo表。

如何成功导入data.sas7bdat?

谢谢

1 个答案:

答案 0 :(得分:2)

您需要先解压缩数据集,然后SAS才能使用它。因此,您需要找到一个具有足够空间来容纳完全展开的文件的位置。

请注意,您的代码尝试两次在ZIP文件中指定文件的成员名称。您只能这样做一次。将fileref指向聚合位置,然后在引用中使用成员名称。或将fileref指向单个成员,然后使用fileref。

这是一种将文件扩展到当前WORK文件夹的方法。

%let member=data.sas7bdat;
filename in zip 'C:\...\data.zip' member="&member" recfm=n;
filename out "%sysfunc(pathname(work))/&member" recfm=n;
data _null_;
   rc=fcopy('in','out');
run;

您现在可以使用名称WORK.DATA处理文件。

proc print data=work.data(obs=1); run;

如果您想直接从ZIP文件中读取数据,则该数据要么是原始(文本)数据,要么需要是流格式,例如SAS V5 XPORT文件。