2016-12-02 1 views
1

DataSet 이름을 가진 테이블이 있는데, 그 중 일부는 이름에 매크로 참조를 포함합니다.매크로 참조를 포함하는 문자열 변수를 계산하십시오.

(YYMM 최신 달) Monthly_Data_ & YYMM 나는이 문자열로 Table을 유지하지만 평가 DataSet 이름의 새 변수를 갖고 싶어

.

Monthly_Data_ & YYMM, Monthly_Data_1612

나는 이것을 수행하는 방법을 찾을 수 없습니다. 데이터 집합을 매크로 변수로 읽으면 필수 이름으로 반환되지만 평가되지 않은 참조와 같은 행에 조인 할 수는 없습니다.

나는 이것이 가능해야하며, 아마도 꽤 쉬울 것이라고 확신하지만, 이것을 수행하는 방법을 고민 할 수는 없습니다.

많은 감사

+0

글쎄, 여기서 한 일을 보여주세요. 당신은 일하고 있습니다. 왜 우리에게 보여줄 수 없습니까? – AxelH

+0

그것은 여기서 작동하지 않습니다. 그것이 그것이 어떻게 작동하기를 원하는지 보여주는 예입니다. 아래 답변은 제가 한 일입니다. – Satkin2

+0

** 데이터 집합을 매크로 변수로 읽으면 필요한 이름으로 반환되지만 평가되지 않은 참조와 같은 행에 연결할 수 없습니다 ** 올바른 결과가 있지만 올바르게 저장되지 않았 음을 의미합니다. 테이블 ... 당신은 저 선이 아니라 저를 쓰는 분입니다. – AxelH

답변

1

당신은, 예를이 작업을 수행 할 resolve 기능을 사용할 수 있습니다

%let YYMM = 1601; 

data mydata; 
    dsname = 'Monthly_Data_&YYMM'; 
    dsname_resolved = resolve(dsname); 
run; 

N.B. 이름 열에 사용 된 모든 매크로 변수는 resolve 함수가 실행될 때 올바른 값으로 세션에 정의되어야합니다. 두 개의 서로 다른 데이터 세트가 이름에 같은 매크로 변수를 사용했지만 다른 시간에 다른 값을 사용하는 경우 매크로 변수를 다시 정의하고 별도의 데이터 단계 또는 call symput + symget을 통해 논리를 별도로 실행해야합니다.

+0

완벽 했어, 내가 한 것. 많은 감사 – Satkin2

관련 문제