以Excel的“文本(MS-DOS)”格式导出SAS数据集

时间:2016-05-26 11:09:04

标签: sas tab-delimited-text

我需要将数据集导出为可能在Unix上运行的古老批处理的文本文件。该文件有一列,所有字段都是数字。

我想创建一个文本文件,模仿Excel创建文本(MS-DOS)文件的方式:

  

将工作簿另存为制表符分隔的文本文件,以便在MS-DOS上使用   操作系统,并确保选项卡字符,换行符和   其他字符被正确解释。仅保存活动   片材。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

DOS uses encoding page 437,这是一组非常有限的字符。如果你没有任何特殊字符,那就很好。如果您确实有特殊字符,则需要将编码页面更改为437以保证字符兼容性。这可以作为dataset选项完成。

SAS internally names this pcoem437。您可以通过更改encoding=选项来查看输出的差异。

data have;
    input var$;
    datalines;
ElNiño
ElNino
;
run;

proc export data=have(encoding=pcoem437)
            file='C:\Directory\want.txt'
            dbms=tab 
            replace;
run;

答案 1 :(得分:1)

如果您只有一列,那么分隔符并不重要。您可以非常轻松地使用DATA步骤编写文件。

data _null_;
   set have ;
   file 'myfile.txt' ;
   put VAR1 ;
run;

如果要添加带列名的额外行,请在PUT语句之前添加此行。

  if _n_=1 then put 'VAR1';

如果您担心是否需要为行尾生成LF或CRLF,可以使用FILE语句中的TERMSTR=选项控制它。