2016-10-26 3 views
1

Understanding SAS IndexesSAS에서 키 변수의 이름을 변경 한 후 색인 파일이 업데이트됩니까?

SAS에서 키 변수의 이름을 바꾸면 단순 인덱스가 삭제되는 대신 이름이 바뀝니다.

그러나이 방법을 직접 사용하면 키 변수의 이름을 바꾼 후 색인 파일이 사라지고 무엇이 잘못 되었습니까? 당신은 키 변수 이드 이름을 바꾼 후, 인덱스가 사라 결과에서 볼 수

data work.temp(index=(id)); 
input id $ amount; 
cards; 
p  52 
p  45 
a  13 
a  56 
r  34 
r  12 
r  78 
; 
proc contents data=work.temp; 
run; 

data WORK.temp ; 
set WORK.temp (keep=Id amount rename=(Id=Id_Code)); 
run; 

proc contents data=work.temp; 
run; 

: 여기

은 내가 사용하는 코드입니다.

대단히 감사합니다!

답변

4

변수의 이름을 변경하지 않아도 사라집니다.

data temp; 
set temp; 
run; 

이렇게하면 색인이 삭제됩니다. 그 이유는 데이터 단계가 원래 데이터 집합을 새로운 것으로 대체하기 때문입니다. 인덱스 교체에 대한 모든 정보가 손실됩니다.

대신 장소에서 설정 데이터를 수정할 PROC DATASETS를 사용 :이 작동하지 않습니다

proc datasets lib=work nolist; 
modify temp; 
rename id=id_code; 
run; 
quit; 
+0

** 정말 고마워요! **이게 내 문제를 해결했습니다! – lleiou

-1

SET 대신 MODIFY를 사용하십시오.

DATA temp; 
    MODIFY temp (RENAME=id=id_code); 
RUN; 
+0

. 이름 바꾸기는 수정시 지원되지 않으며 무시됩니다. 적어도 내가 가지고있는 버전에는 없습니다. – DomPazz

+0

네 말이 맞아. MODIFY가 DATA 단계에서 제한적이라는 것을 알지 못했습니다. 이상한 것은 이것이 실행될 때 어떤 메모, 경고 또는 오류도주지 않습니다. –

+0

@DomPazz RENAME 데이터 세트 옵션이 무시되지 않고 PDV에 PUT \ _ALL \ _으로 확인할 수있는 RENAMED 변수가 포함되어 있습니다. Id_Code = p amount = 52 _ERROR_ = 0 _IORC_ = 0 _N_ = 1 이것은 TEMP에서 언급 한 이름을 변경하지 않습니다. –