2013-09-30 30 views
1

我正在从事与临床研究相关的一些代码开发。我有多次访问,如基线,第01周等。为了避免使用多个IF-ELSE语句为这些访问分配数值,我只是使用格式化过程来创建格式。如何从SAS中的字符串创建数字格式?

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

但我期待的是像基线值1(数字)而不是字符。有没有解决这个问题的方法。请帮忙。

+0

这将真正帮助,如果你能劝你如何使用格式化的值 – Longfish

+0

FORMAT显示SAS如何在字符显示的值(无论是数字或字符)。 INFORMAT显示SAS如何将数值转换为数值(字符或数字)。 – Joe

回答

3

您的格式简单地更改为资料,请...

 

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 ; 

0
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; 

TEST2:

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

其中v & VIS2是字符变量和VIS3是数值变量。

这是你在找什么?

相关问题