我的数据是以逗号分隔的.txt文件。我正在编写一个常规的infile语句来将该文件导入sas数据集。数据大约有250万行。但是在第37314行和更多行中我有垃圾值。 SAS正在导入垃圾值行上方一行的行,因此我没有得到一个包含所有250万行但有37314行的数据集。我想编写一个代码,在编写这个infile时会处理这些垃圾行,或者不接受或删除它们。总而言之,我需要所有250万行,因为在垃圾行之间我无法获得这些行。
任何帮助将不胜感激。
答案 0 :(得分:4)
只需使用
就可以将整行读入输入缓冲区 Input;
语句。然后,您可以使用
分别解析字段_infile_
可变
示例:
data _null_;
infile datalines firstobs=2;
input;
city = scan(_infile_, 1, ' ');
char_min = scan(_infile_, 3, ' ');
char_min = substr(char_min, 2, length(char_min)-2);
minutes = input(char_min, BEST12.);
put city= minutes=;
datalines;
City Number Minutes Charge
Jackson 415-555-2384 <25> <2.45>
Jefferson 813-555-2356 <15> <1.62>
Joliet 913-555-3223 <65> <10.32>
;
run;