使用PUT-in-SAS读取数据

使用PUT-in-SAS读取数据,sas,export-to-csv,Sas,Export To Csv,我通常使用PROC EXPORT将数据从SAS读取到csv或.dat文件 我得到了一个使用PUT语句的读数,但我找不到一个如何使用这个语句的例子 我现在得到的是: DATA TC_LEVEL_JUNE01; FILE "C:\Users\JUNE01.csv" LRECL = 7353; PUT @5 VAR1 $20. @25 VAR2 $20. @45 VAR3 2. ; RUN; 但这只是将数据更改为一行数据集 仅为了在操作系统中创建csv输出文件

我通常使用PROC EXPORT将数据从SAS读取到csv或.dat文件

我得到了一个使用PUT语句的读数,但我找不到一个如何使用这个语句的例子

我现在得到的是:

DATA TC_LEVEL_JUNE01;
FILE "C:\Users\JUNE01.csv"
    LRECL = 7353;
    PUT
    @5 VAR1 $20.
    @25 VAR2 $20.
    @45 VAR3 2.
;
RUN;

但这只是将数据更改为一行数据集

仅为了在操作系统中创建
csv
输出文件,请使用
DATA\u NULL\u
。数据步骤没有
SET
语句,因此没有要处理的数据行。因为您有
数据TC\u LEVEL\u JUNE01
它将创建一个单行输出数据集和一个输出文件。不确定put语句将创建一个46个字符的行时,为什么
LRECL=7353

这更接近于固定列输出所需的值(下游处理可能不需要逗号):

对于实
PUT
filled
csv
也需要逗号分隔和双引号字符值

例如:

data _null_;
  set sashelp.class;
  file 'c:\temp\class.csv' dlmstr=',' dsd;
  put name sex age ;
run;
文件
帮助(粗体)

DSD(分隔符敏感数据)

指定包含嵌入分隔符的数据值,例如 制表符或逗号用引号括起来。DSD选项使您能够将包含嵌入式分隔符的数据值写入列表输出。对于其他类型的输出(例如,格式化、列和命名),此选项将被忽略。重复数据值中包含的任何双引号。当变量值包含分隔符且在FILE语句中使用DSD时,生成输出时,变量值用双引号括起


为了仅在操作系统中创建一个
csv
输出文件,请使用
DATA\u NULL\u
。数据步骤没有
SET
语句,因此没有要处理的数据行。因为您有
数据TC\u LEVEL\u JUNE01
它将创建一个单行输出数据集和一个输出文件。不确定put语句将创建一个46个字符的行时,为什么
LRECL=7353

这更接近于固定列输出所需的值(下游处理可能不需要逗号):

对于实
PUT
filled
csv
也需要逗号分隔和双引号字符值

例如:

data _null_;
  set sashelp.class;
  file 'c:\temp\class.csv' dlmstr=',' dsd;
  put name sex age ;
run;
文件
帮助(粗体)

DSD(分隔符敏感数据)

指定包含嵌入分隔符的数据值,例如 制表符或逗号用引号括起来。DSD选项使您能够将包含嵌入式分隔符的数据值写入列表输出。对于其他类型的输出(例如,格式化、列和命名),此选项将被忽略。重复数据值中包含的任何双引号。当变量值包含分隔符且在FILE语句中使用DSD时,生成输出时,变量值用双引号括起

不确定“读取”是什么意思,但您的数据步骤没有读取任何数据,因此没有数据要写入。SAS附带有
ds2csv()
宏。通常是从数据集创建CSV的最快/最简单的方法。只需在谷歌上搜索更多详细信息。不确定“读取”是什么意思,但您的数据步骤没有读取任何数据,因此没有数据可供写入。SAS附带的还有
ds2csv()
宏。通常是从数据集创建CSV的最快/最简单的方法。只需谷歌搜索更多细节。