2011-11-28 3 views
1

쉼표로 구분 된 .txt 파일에 내 데이터가 있습니다. 그 파일을 sas 데이터 세트로 가져 오기위한 정규 infile 문을 작성했습니다. 데이터는 약 250 만 행입니다. 그러나 37314 행과 더 많은 행에서 나는 정크 값을 가진다. SAS는 정크 값 행 위의 행만 가져 오기 때문에 모든 250 만 행이지만 37314 행의 데이터 집합을 가져 오지는 않습니다. 나는이 infile을 쓰는 동안 이러한 쓰레기 행을 처리하고 어느 것이 든 그들을 가져 가거나 삭제하는 코드를 작성하려고합니다. 대체로 정크 행 사이에 있기 때문에 얻을 수없는 250 만 개의 행이 모두 필요합니다.행의 쓰레기 값 (sas)

어떤 도움을 주시면 감사하겠습니다.

+0

코드 –

+0

정크 값이 무엇을 게시하시기 바랍니다? – itzy

답변

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.

2

당신은 또한 사용할 수 있습니까? 그리고 ?? 입력 문에 대한 수정자가 문제 행을 '무시'합니다.

여기는 link to the doc입니다. "오류보고를위한 형식 수정 자"제목을보십시오.

예 :

data x; 
    format my_num best.; 
    input my_num ?? ; 

    ** 
    ** POSSIBLE ERROR HANDLING HERE: 
    *; 
    if my_num ne . then do; 
    output; 
    end; 

datalines; 
a 
; 
run; 
+0

nice ... 수정 자 +1에 대해 몰랐습니다. –