2014-04-13 3 views
0

다음은proc print에서 열거 형을 설정하는 방법은 무엇입니까?

proc print data=ch1.test ; 
id=_N_ ; 
where id >2 ; 
sum var1 ; 
run ; 

Statement is not valid or it is used out of proper order.

내가 데이터 단계에서 ID를 생성 할 수 있습니다 작동하지 않습니다

data test ; 
set test ; 
id = _n_ ; 
run ; 

다음

proc print 직접에 열거를 만들 수있는 방법이 있나요 proc 인쇄?

답변

1

FIRSTOBS 다른 곳에서는이 특정 질문에 대해 올바른 방법을 사용합니다.

더 일반적인 대답을 보려면보기 또는 PROC REPORT (둘 다 묻는 것을 할 수 있음)을 고려하십시오.

보기는 실제로 실행되지 않는 데이터 단계이므로 걱정되는 경우 시간을 절약 할 수 있습니다.

data print_view/view=print_view; 
set yourdata; 
id=_n_; 
run; 

그런 다음 당신은보기 print_view 대신 yourdataPROC PRINT. 또한보기에서 필터링을 직접 수행 할 수도 있습니다 ( where 문 또는 proc에서는 불가능한 first.<var> 유형 필터).

PROC REPORT은 효과적으로 PROC PRINT입니다. 그것은 많은 것들을 할 수 있지만, 그 중에는 즉석에서 변수를 생성 할 수있는 능력이 있습니다.

proc report nowd data=yourdata; 
columns x y z; 
compute x; 
    rowcounter+1; 
endcomp; 
run; 
실제로 도움이되지 것입니다이 경우

(다른 옵션 행을 필터링하는 것보다이 방법으로 더 많은 작업입니다)하지만, 다른, 더 복잡한 상황에서 이런 종류의 물건이 적합 할 수 있습니다.

1

proc print 문에 firstobs=3 옵션을 사용할 수 있습니다.

2

SAS/Base 절차의 일반적인 규칙으로 변수를 만들 수 없습니다 (Proc SQL은 명백한 예외입니다.) Proc Report 너무 많이 생각합니다. SAS/Stat의 모듈과 같은 다른 모듈의 프로 시저는보다 다양하고 많은 변수를 만들 수 있습니다. 그럼에도 불구하고 일반적으로 datastep 또는 Proc SQL은 변수를 만드는 곳입니다. 절차는 당신이 그들을 사용하는 곳입니다.

firstobs을 사용하여 첫 번째 'proc print'를 에뮬레이션 할 수 있습니다. 이것은 SAS가 데이터 세트를 처리 할 때 처음 사용하는 관찰을 지정합니다. 따라서 proc print data=foo(firstobs=3);은 예제에 지정된대로 출력을 생성해야합니다.

firstobs의 결과는 데이터 정렬 방법에 따라 달라질 수 있습니다.

+0

'PROC SQL'은'PROC PRINT'와 같은 종류의 프로 시저입니다. 그것은 프로그래밍 환경 (예 :'PROC IML')입니다. – Joe

관련 문제