управляемые данными, поставленные с различными форматами - PullRequest
0 голосов
/ 29 мая 2018

Я хотел прийти сюда с этой проблемой, с которой я сталкиваюсь в эти дни.

В основном для каждой записи в выражении put должен использоваться другой формат, и он определяется в самих данных..

Задача состоит не в том, чтобы разделить шаги данных и получить желаемый результат в пределах шага данных, поэтому избегайте очевидных циклов% do и подобных:)

proc format;
    value $a 'FRS'='FIRST';
    value $b 'SCN'='SECOND';
run;
data a;
    length var $3 res $10 fmt $5;
    var='FRS'; fmt='$a.'; res=''; output;
    var='SCN'; fmt='$b.'; res=''; output;
run;
data b;
    set a;

    *your code goes here, the result should go into res variable;
    *and should be the "putted" value of var using fmt as format.;
    *an obviously non working version can be found here below;

    res=put(var,fmt);
run;

Ниже показано, как это выглядит,res - ожидаемый результат:

VAR  FMT  RES
---------------
"FRS" $a. =put("FRS",$a.)="FIRST"
"SCN" $b. =put("SCN",$b.)="SECOND"

1 Ответ

0 голосов
/ 29 мая 2018

Я не уверен, что понимаю вопрос, но похоже, что вы просто хотите использовать функцию PUTC().Если бы ваша переменная была числовой, вы бы использовали функцию PUTN().

res=putc(var,fmt);
...