2014-04-07 2 views
0

나는 getnames=no일반 sas 변수의 이름을 바꾸는 방법은 무엇입니까?

proc import out=dstest 
datafile 

... 

run; 

와 데이터 집합을 수입 F1-F5 변수

의 무리가 지금은 오류입니다


다음
data dstest (rename=(F2=newName)); 
    set dstest ; 
    run; 

그들에게 이름을 바꿀있어

여기

data dstest ; 
     set dstest(rename=(F2=newName)) ; 
     run; 


Variable F2 is not on file WORK.dstest. 

그러나 PROC 인쇄가 잘 작동 오류를입니다

proc print data=tortdata (obs=10) ; 
var F2; 
run; 
+0

이것은 http://www.ats.ucla.edu/stat/sas/code/renaming_variables_dynamically.htm –

답변

2

본질적으로 당신이 게시 한 것을 문제, 지라 등 아무것도 코드를 실행해야합니다 :

data blah; 
f1=1; 
f2=4; 
run; 

data blah(rename=(f1=a f2=b)); 
set blah; 
run; 

그러나 변수의 이름을 바꾸는 경우 데이터 단계를 수행 할 이유가 없습니다. PROC DATASETS은 전체 데이터 세트를 거치지 않고도이 문제를 처리 할 수 ​​있습니다. 데이터 집합이 작 으면 큰 문제는 아니지만 큰 경우 많은 시간을 절약 할 수 있습니다. 위에서 설명한 f1을 실행하면 f2가 사라지고, blah 데이터 세트를 재구성하지 않으면 f2가 사라집니다.

proc datasets lib=work; 
modify blah; 
rename f1=a f2=b; 
quit; 
+0

감사합니다 도움이 될 수 있습니다. 분명히 당신이 말했듯이 그것은 나의 데이터 단계에서 효과가있었습니다. 나는 그것을'proc print'로 검사했다. 하지만 'Explorer'에서 테이블 아이콘을 더블 클릭하면 왜 'F1 F2 F3 ...이 이름들'을 볼 수 있습니까? – Buras

+0

@Buras 변수 이름과 다른 _labels_ 변수가 표시됩니다. 공백 등이있는 텍스트 일 ​​수 있습니다. 'attrib _all_ label = '';'는 PROC DATASETS 또는 데이터 단계에서 실행되어 모든 레이블을 지울 수 있습니다. 그러면 변수 이름이 나타납니다. – Joe

+0

감사합니다. 지금은 이해 – Buras

관련 문제