【问题标题】:Choose the format of variables while importing csv file导入 csv 文件时选择变量的格式
【发布时间】:2021-12-22 22:39:53
【问题描述】:

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

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

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

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

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

非常感谢!

【问题讨论】:

    标签: csv import sas format


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-06
      • 2021-05-16
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 2011-01-04
      相关资源
      最近更新 更多