SAS编程,从一个文件中读取并分离到不同的列中
问题描述:
我有一个excel文件,我想将文本分成SAS中的不同列。 在它看起来像这样在同一列中的文件,我想拆它,摆脱引号:SAS编程,从一个文件中读取并分离到不同的列中
ID;"City";"Year"
1;"New york";NULL
2;"stockton";"18"
这就是我试图做的:
data work.project ;
infile "&path\users.csv" delimiter=';' missover dsd;
input ID: $30.
City: $200.
Year: $5. ;
run;
proc print data=work.project;
run;
我的输出:
观测数据ID市创
1 ,,, “ID ”“ 城” “”“年
2 ,,,”1“”new york“”NULL“
3 ,,,”2“”stockton“”“”18“
4 ,,,”3“”moscow“”“ NULL“
答
而不是INPUT
语句中的冒号和格式使用INFORMAT
语句。
data work.project;
infile datalines4 delimiter=';' truncover dsd;
informat id $30. city $200. year $4.;
input ID City Year;
datalines4;
1;"New York";NULL
2;"Stockton";"18"
;;;;
run;
proc print data=project;
run;
+0
SAS不需要使用INFORMAT来读取字符变量。如果要定义变量,请使用LENGTH语句。 – Tom
您的问题标题说Excel,但问题中的代码读取.csv。这是什么?请显示您从示例代码中获得的输出,并描述它是如何出错的。代码似乎为我工作得很好。 – Quentin
是的,你说得对,它是一个.csv文件!我现在在我的问题中添加输出。我想摆脱引用...我尝试使用例如$ quote200。,但后来我失去了价值 – lih
我会仔细检查您的文件。或者从这个问题中将你的示例文件粘贴到一个新的csv中,然后从这个问题中运行你的代码。我的SAS数据集中没有引号或附加逗号。在Windows上运行。 – Quentin