Как создать числовой формат из строк символов в SAS?

Я работаю над разработкой кода, связанного с клиническими исследованиями. У меня есть несколько посещений, например исходный уровень, неделя 01 и т. д. Чтобы избежать использования нескольких операторов IF-ELSE для присвоения числовых значений этим посещениям, я просто создаю форматы, используя процедуру форматирования.

proc format;
 value _vis $ 'baseline'='1'
            'week01'='2'
            'week02'='3' ;
run;

Но я ищу, как базовая линия, имеющая значение 1 (числовое), а не символ. Есть ли выход из этой проблемы. Пожалуйста помоги.


person ved_null_    schedule 30.09.2013    source источник
comment
Было бы очень полезно, если бы вы могли посоветовать, как вы используете форматированные значения.   -  person Longfish    schedule 30.09.2013
comment
FORMAT показывает SAS, как отображать символьное значение (числовое или символьное). INFORMAT показывает SAS, как преобразовать значение в числовое (символьное или числовое).   -  person Joe    schedule 30.09.2013


Ответы (2)


Просто измените формат на информационный...


proc format;
  invalue vis /* INvalue = informat */
    'baseline' = 1
    'week01'   = 2
    'week02'   = 3 
  ;
run;

data data1 ;
  d = 'baseline' ;
  n = input(d,VIS.) ;
run ;
proc print ; run ;

person Chris J    schedule 30.09.2013

proc format;
 value $_vis 
'baseline'='1'
'week01'='2'
'week02'='3';
run;

data test;
length vis $8.;
vis = 'baseline';
output;
vis = 'week01';
output;
vis = 'week02';
output;
run;

data test2;
set test;
vis2=vis;
format vis2 _vis.;
vis3=input(put(vis2, _vis.),8.);
run;

тест2:

vis     vis2    vis3
baseline    1   1
week01      2   2
week02      3   3

где vis и vis2 — символьные переменные, а vis3 — числовая переменная.

Это то, что вы ищите?

person Community    schedule 30.09.2013