Получение данных из SAS / IML - PullRequest
1 голос
/ 15 марта 2012

У меня есть следующий модуль, например, в IML:

start multiply (x,y);
    product = x*y;
    return product;
finish multiply;

Которым я звоню:

RUN multiply(2,100); /* outputs 200 */

То, что я хочу знать, очень просто, как я могу назначить это как новую переменную? В PHP я мог бы сделать:

function multiply($x,$y){
    $product = $x*$y;
    return $product;
}

Тогда сделайте:

$newvar = multiply(2,100);

Мне нужна эта функциональность в SAS. Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 24 января 2013

Ответ на ваш оригинальный вопрос состоит в том, чтобы присвоить возвращаемое значение матрице: Вместо

 RUN multiply(2,100); /* WRONG */

хочешь

 product = multiply(2,100); 
0 голосов
/ 15 марта 2012

Я понял, что поскольку SAS передается по ссылке, мы можем передать то, что нам нужно, в качестве выходной переменной в качестве входного параметра нашего модуля.Таким образом, мы можем написать:

start multiply (x,y,z);
    product = x*y;
    z = product;
finish multiply;

Который я звоню:

run multiply(2,100,z);
print z;

Передача по ссылке, эффективно, но рискованно ...

...