2014-11-21 7 views
0

은 임 4GL을 배우고 나는 인포와 약간의 문제가있다 : 나는 파일이 :SAS 4GL - 여러 인포

Imie;Nazwisko;Wiek;indeks;PESEL;Kierunek;Rok;Urodziny;Srednia;Frekwencja 
Tomasz;Szan;23;114132;9134765445;Informatyka;5;5.32;99%;14.03.91 
Karolina;Herl;21;134294;93543245;;3;4.57;92%;29.09.93 
Damian;Kwak;24;189994;1234567890;Informatyka;5;3.50;80%;24.09.90 
Ebenezer;Scrooge;AA;882741;78899609;Automatyka;4;3.72;34%;30.02.88 

그리고 4GL 코드 :

DATA projekt.project1; 
length PESEL $ 11; 
length nazwisko $ 15; 
length kierunek $ 15; 

INFILE 'c:\lasa_do_sasa\studenty.txt' DLM=';' MISSOVER DSD FIRSTOBS=2; 
INPUT imie $ nazwisko $ wiek $ nr_indeksu PESEL $ kierunek $ rok srednia_ocen frekwencja PERCENT3. urodziny ddmmyy8. ; 

RUN; 

문제가 있다는 것입니다 : 내가 가지고있는 경우 xx % SAS는 날짜를 읽지 않습니다. 오류가 발생하고 있습니다 : urodziny의 데이터가 잘못되었습니다

누구든지 나를 도와 줄 수 있습니까? 나는 분명히 뭔가 할 일이 없다.

+0

입력 명령문의 순서가 헤더 행과 일치하지 않습니다. 그리고 나는 당신이 "XX %를 가지고있다; SAS가 날짜를 읽지 않을 것"이라는 의미가 무엇인지 잘 모르겠다. 첫 번째 파트 (입력 순서)를 수정하는 것이 도움이 될 수 있다고 생각합니다. – Reeza

+0

또한 SAS가 2 월 30 일을 유효한 날짜로 설득하는 데 어려움을 겪을 수도 있습니다. – user667489

+0

30 feb은 내 퀘스트의 일부입니다. 날짜와 같은 잘못된 데이터를 제거해야합니다. –

답변

2

여기에 속한 속임수는 : 형식 수정자를 사용하여 SAS가 % 기호 다음의 구분 기호를 넘어서 읽으려고 시도하는 것을 막는다. 다음과 같이 입력 명령문에서 다른 변수의 길이를 설정할 수도 있습니다.

data want; 
infile cards4 dsd dlm = ';' firstobs = 2; 
input imie $ nazwisko :$15. wiek $ indeks $ PESEL :$11. kierunek :$15. rok urodziny srednia :PERCENT3. frekwencja ddmmyy8. ; 
format frekwencja ddmmyy8.; 
cards4; 
Imie;Nazwisko;Wiek;indeks;PESEL;Kierunek;Rok;Urodziny;Srednia;Frekwencja 
Tomasz;Szan;23;114132;9134765445;Informatyka;5;5.32;99%;14.03.91 
Karolina;Herl;21;134294;93543245;;3;4.57;92%;29.09.93 
Damian;Kwak;24;189994;1234567890;Informatyka;5;3.50;80%;24.09.90 
Ebenezer;Scrooge;AA;882741;78899609;Automatyka;4;3.72;34%;30.02.88 
;;;; 
run; 
+0

고마워요! 이것은 내가 찾고 있었던 것이다. –