3

我们需要生成的输出是标准分隔文件,但我们需要二进制而不是 ascii 内容。这可能使用SAS吗?

4

4 回答 4

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

于 2009-07-09T15:20:44.343 回答
1

您是说您有要输出到 csv 的二进制数据吗?

如果是这样,我不认为应该有一个明确的标准来处理这个问题。

我建议尝试一下(想到 proc export),看看结果是否符合您的期望。

于 2009-07-10T01:18:34.280 回答
1

您实际上可以将 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 格式。

于 2009-07-10T12:29:17.737 回答
0

使用SAS,输出一个.csv文件;在 Excel 中打开它并另存为客户想要的任何格式。您也可以通过### 中的一些脚本来自动执行此过程。(用你最喜欢的脚本语言替换###。)

于 2009-09-10T13:55:22.347 回答