我们需要生成的输出是标准分隔文件,但我们需要二进制而不是 ascii 内容。这可能使用SAS吗?
4 回答
您需要特定的二进制格式吗?或者只是一些非ASCII的东西?如果您使用 proc 导出,则可能仅限于可用的任何格式。但是,您始终可以手动创建 csv。
如果可以的话,您可以简单地压缩 csv 文件。
例如,在 *nix 系统上运行,你会使用类似的东西:
filename outfile pipe "gzip -c > myfile.csv.gz";
然后手动创建 csv:
data _null_;
set mydata;
file outfile;
put var1 "," var2 "," var3;
run;
如果这是 PC/Windows SAS,我不太熟悉,但您可能需要安装命令行 zip 实用程序。
SAS 的这个链接建议使用 winzip,它有一个可免费下载的版本。否则,代码类似。 http://support.sas.com/kb/26/011.html
您是说您有要输出到 csv 的二进制数据吗?
如果是这样,我不认为应该有一个明确的标准来处理这个问题。
我建议尝试一下(想到 proc export),看看结果是否符合您的期望。
您实际上可以将 CSV 文件作为 SAS 目录条目;CSV 是有效的 SAS 目录条目类型。
这是一个例子:
filename of catalog "sasuser.test.class.csv";
proc export data=sashelp.class
outfile=of
dbms=dlm;
delimiter=',';
run;
filename of clear;
这段代码将 SASHELP.CLASS 导出到条目类型为 CSV 的 SAS 目录条目。
通过这种方式,您可以获得二进制格式,您可以使用 PROC CPORT/CIMPORT 在不同平台上的 SAS 安装之间移动,不必担心使用的二进制包格式是否可用于您的 SAS 会话,因为它是内部 SAS 格式。
使用SAS,输出一个.csv文件;在 Excel 中打开它并另存为客户想要的任何格式。您也可以通过### 中的一些脚本来自动执行此过程。(用你最喜欢的脚本语言替换###。)