连续垃圾值(sas)

时间:2011-11-28 09:27:17

标签: sas

我的数据是以逗号分隔的.txt文件。我正在编写一个常规的infile语句来将该文件导入sas数据集。数据大约有250万行。但是在第37314行和更多行中我有垃圾值。 SAS正在导入垃圾值行上方一行的行,因此我没有得到一个包含所有250万行但有37314行的数据集。我想编写一个代码,在编写这个infile时会处理这些垃圾行,或者不接受或删除它们。总而言之,我需要所有250万行,因为在垃圾行之间我无法获得这些行。

任何帮助将不胜感激。

1 个答案:

答案 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;

Working with Data in the Input Buffer.