我是SAS的新手,我想导入一个csv文件。此文件有一列包含以0开头的字符(例如,01000
或05200
),长度为5个字符。
当我用calc软件打开我的文件时,没有问题。但当我在SAS中导入时:
proc import file="myfile.csv"
out=output
dbms=csv;
run;
然后将该列视为数字列,因此删除第一个0。事后更改格式并不能解决我的问题。
是否有一种解决方案可以在读取csv之前指定格式导入,或者只有一种解决方案可以强制将所有列作为字符导入?
非常感谢!
最简单的解决方案是用程序读取文件,而不是强迫SAS猜测如何读取文件。PROC IMPORT将实际生成一个可以用作模型的程序。但写自己的并不难。然后您就可以完全控制变量的定义方式:NAME;类型(数字或字符);储存长度;标签用于显示的格式;用于从行中读取值的信息。
只需定义变量,附加任何必需的格式和/或信息,然后读取它们。例如,此步骤将从文件中读取两个数字和两个字符变量。我使其中一个字符变量具有日期值,以便您可以看到如何将格式和/或信息附加到需要它的变量。大多数变量既不需要信息,也不需要附加格式,因为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;