2009-07-13 4 views
3

누구든지이 오류 메시지가 의미하는 것을 알고 있습니까?SAS 오류 메시지 (위험 : MISSING 스미어 생성 중에 코드 생성 오류가 감지 됨)

치명적 : 스미어 생성 오류가 발생하는 동안 코드 생성 오류가 감지되었습니다.

약 40 개의 데이터 세트를 연결하면서 발생합니다. 나는

301 Data &dsn.&pfix.; 
302 set &setlist.; 
303 if SPCODE > 50 then delete; 
304 * these SPCODES are subtotals ; run; 

FATAL: Code generation error detected during MISSING smear generation. 

NOTE: The SAS System stopped processing this step because of errors. 

WARNING: The data set WORK.XXXXXX may be incomplete. When this step was 
stopped there were 0 observations and 217 variables. 

NOTE: DATA statement used (Total process time): 
real time 10.58 seconds 
cpu time 1.76 seconds 
+0

AFHood는 말하기를 메모리 문제이며 문제를 재 작업하는 것이 가장 좋습니다. 재 작업을 할 수 없다면 -memsize 0 옵션을 사용하여 SAS를 시작하여 SAS가 더 많은 메모리를 사용할 수있게하십시오 (사용 가능한 경우) – cmjohns

+0

동의 - 데이터 세트의 절반에 keep =을 사용하여 단계를 재실행했습니다. 벌금. memsize 팁을 주셔서 감사합니다. –

+0

테스트/개발 목적으로'data-set-option'으로'(obs = 10000)'을 시도해 볼 수도 있습니다. 보통'KEEP ='보다 쓰기가 쉽습니다. – JustinJDavies

답변

1

유일한 시간 (로그 파일) ...이 (217 년경) 너무 많은 변수를 가지고에서 메모리 제한을 타격으로 인해 수 있지만, 이것의 확인을받을 좋은 것입니다 생각 이 오류는 메모리 제한에 관한 것입니다.

데이터 세트의 양을 부분 집합하여 다시 처리하는 것이 좋습니다. 특정 한도까지 성공하면 문제가 분명해질 것입니다.

코드를 기반으로 한 번에 모두 처리하는 대신 데이터 세트를 반복합니다. 이것은 또한 당신의 기억 문제를 피해야합니다.