2013-04-06 162 views
0

我想將以下dat文件讀入SAS。由於名稱和值由2個空格分隔,因此我在輸入語句中使用&符號。但似乎在infile語句中的DLM='/'與它衝突。有人能告訴我我的代碼中的錯誤是什麼?如何在SAS中使用&符號和分隔符

文件:

1118 ART CONTUCK 57.69/65.20/120.50//152.60 
2287 MICHAEL WINSTONE 145.89 

代碼:

data mylib.D_report; 
infile Dinning dlm='/' dsd missover; 
input ID 1-4 Name & $17. M1-M6; 
run; 

回答

1

你混合輸入風格,而理解的,因爲你有相當的混合輸入數據,,是不允許你這樣做的方式它。

您最好的選擇是將M1-6讀入一個變量,然後使用SCAN進行分割。

data work.D_report; 
infile datalines missover dlm=' '; 
input ID :4. 
     Name & $17. 
     Ms :$40.; 

array M[6]; 
do _t = 1 to countc(Ms,'/')+1; 
if _t > dim(M) then leave; 
M[_t]=scan(Ms,_t,'/','m'); 
end; 
datalines; 
1118 ART CONTUCK 57.69/65.20/120.50//152.60 
2287 MICHAEL WINSTONE 145.89 
;;;; 
run; 
+0

我不知道,你可以使用數組這種方式。非常感謝。 – dirks 2013-04-07 00:25:23

1

你只需要改變分隔符。

data D_report; 
    dlm = ' '; 
    infile cards dlm=dlm missover dsd; 
    input ID 1-4 Name & $17. @; 
    dlm = '/'; 
    input M1-M6; 
    cards; 
1118 ART CONTUCK 57.69/65.20/120.50//152.60 
2287 MICHAEL WINSTONE 145.89 
run; 
proc print; 
    run; 

enter image description here

相關問題