导入 csv 文件时选择变量格式

Choose the format of variables while importing csv file

我是 SAS 的新手,我想导入一个 csv 文件。此文件有一列包含以 0 开头的字符(例如,0100005200),长度为 5 个字符。

当我用 calc 软件打开我的文件时,没问题。但是当我在 SAS 中导入时:

proc import file="myfile.csv"
    out=output
    dbms=csv;
run;

该列随后被视为数值列,因此第一个 0 被删除。之后更改格式并不能解决我的问题。

是否有在读取 csv 之前指定格式导入的解决方案,或者只是强制将所有列导入为字符的解决方案?

非常感谢!

最简单的解决方案是用程序读取文件,而不是强制 SAS 猜测如何读取文件。 PROC IMPORT 实际上会生成一个程序,您可以将其用作模型。但是自己写也不难。然后您将完全控制变量的定义方式:NAME;类型(数字或字符);存储长度;标签;用于显示的格式; INFORMAT 用于从行中读取值。

只需定义变量,附加任何要求的格式and/or信息,然后读取它们。例如,此步骤将从文件中读取两个数字变量和两个字符变量。我使其中一个字符变量具有 DATE 值,因此您可以看到如何将格式 and/or 信息附加到需要它的变量。大多数变量既不需要信息格式也不需要附加格式,因为 SAS 知道如何读写数字和字符串。

data output;
  infile "myfile.csv" dsd firstobs=2 truncover;
  length var1  var2 8 var3  var4 8;
  informat var4 date.;
  format var4 yymmdd10.;
  input var1 var2 var3 var4;
run;