H9999-999-999-999와 같은 여러 변수가있는 SAS 데이터 세트가 있습니다. 그러나, 나는 불필요한 열을 삭제해야하고 할 수있는 변수 목록 (ParamList)를 사용하고 그 내 변수가 포함되어 있기 때문에SAS : 변수 목록에 '-'기호가있는 이름이 들어있어 유지 = 문에서 오류가 발생합니다.
proc sql;
select _NAME_ into :ParamList separated by ' '
from uniquePlanList;
quit;
%put ParamList = &ParamList.;
proc sql;
create table test as
select * from out.seq_summ(keep=BPT_Cat &ParamList.);
run;
'-'나는 다음과 같은 오류가 나타납니다 심볼 :
오류를 214- 322 : 변수 이름 - 올바르지 않습니다.
ERROR 214-322 : 변수 이름 000이 유효하지 않습니다.
ERROR 80-322 : 변수 이름이 필요합니다.
오류 : KEEP 옵션의 값이 잘못되었습니다.
오류 : 잘못된 옵션 이름 -000.
오류 : 위의 오류 또는 경고로 인해 OUT.SEQ_SUMM 파일의 일부 옵션이 처리되지 않았습니다.
내가 알고있는이 같은 변수 밖으로 나열한다면 :
(계속 = BPT_Cat 'H9999-999-999-999'n'H9999-999-999-998'n를)
그러면 코드가 작동합니다. 하지만 수백 가지 변수가있는 데이터 세트가 있습니다. 변수 목록을 사용하는 것보다 불필요한 열을 삭제하는 더 좋은 방법이 있습니까? 아니면 변수 목록에서 문자열로 읽을 수있는 영리한 방법이 있습니까? 나는 이것을 사용해 보았습니다 :
(keep = BPT_Cat % str (& ParamList.)) 그러나 위와 같은 오류가있었습니다.
'options validvarname = V7'을 설정하면 이름을 전혀 다룰 필요가 없습니다. 라벨에 유용하지만 코딩 할 때 전반적으로 명확하게 처리하는 번거 로움이 있습니다. – Reeza