2016-08-23 4 views
-1

У меня есть набор данных, как это:SAS Caculation в таблице

data a; 
input a b $ c; 
cards; 
3 + 5 
4 + 4 
5 - 2 
6 * 5 
7 / 2 
;run;  

Я хочу, чтобы добавить новый столбец D, который вычисляет его значение из столбцов A, B и C:

A B C D 
=== === === === 
3 + 5 8 
4 + 4 8 
5 * 2 10 
6 - 5 1 
7 / 2 3.5 

ответ

2

Как о это.

data a; 
    input a b $ c; 
    select(b); 
     when('+') d=a+c; 
     when('-') d=a-c; 
     when('*') d=a*c; 
     when('/') d=a/c; 
     otherwise; 
     end; 
    cards; 
3 + 5 
4 + 4 
5 - 2 
6 * 5 
7 / 2 
;;;; 
    run; 
+0

Интересно, существует ли эквивалент datastep '% sysevalf'? –

+0

@RobertPenridge нет, но вы можете называть его функцией RESOLVE. Возвращаемое значение будет символом. –

Смежные вопросы