2013-09-30 62 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是數值變量。

這是你在找什麼?

相關問題