VVALUEX() 함수를 사용하는 정적 예제입니다. 상황에
data result;
V01 = 2;
AMOUNT=100;
CALC = 'value of V01 * AMOUNT';
length arg1 arg2 $32;
arg1 = scan(compress(CALC, 'value of'), 1);
arg2 = scan(compress(CALC, 'value of'), 2);
put arg1 arg2;
result = input(VVALUEX(arg1), 16.) * input(VVALUEX(arg2), 16.);
run;
, 모든 변수의 CALC, 유형의 재잘과 형식을 알고 인식하는 논리를 만들어야 할 것 (VVALUEX()
반환 값을 포맷 이후).
동적 인 접근 방식이지만 많은 양의 데이터에 적합하지는 않지만 각 행에 대한 코드를 생성하는 것입니다 (아래 참조). 현재는 IF .. THEN
에서 사용할 수있는 간단한 표현을 가정합니다.
data input;
length CALC $50;
input V01 M08 AMOUNT CALC 9-58;
cards;
2 1 100 value of V01 * AMOUNT
2 4 100 value of M08 * AMOUNT
;
run;
/* code generation */
data _null_;
file 'mycalc.sas';
set input end=last;
length line $150;
if _N_=1 then do;
put 'data result;';
put ' set input;';
end;
line = 'if _N_ = ' || put(_N_, 8. -L) ||
' then RESULT = ' || compress(CALC, 'value of') || ';';
put line;
if last then put 'run;';
run;
%include 'mycalc.sas'; /* run the code */
좋아요, 지금 계획 필드에 대한 메모를 보지 못한 경우 - 필요에 따라 조정하십시오.
너희들은 훌륭하다 !!!!! 나는 VVALUEX까지 갔지만 그것을 적용하는 방법을 알 수 없었다. – Samuel