导入 csv 文件时选择变量格式
Choose the format of variables while importing csv file
我是 SAS 的新手,我想导入一个 csv 文件。此文件有一列包含以 0 开头的字符(例如,01000
或 05200
),长度为 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;
我是 SAS 的新手,我想导入一个 csv 文件。此文件有一列包含以 0 开头的字符(例如,01000
或 05200
),长度为 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;