2015-11-25 41 views
-1

我想知道如何導入包含引號(「」)的SAS數據文件。在包含引號的sas中導入文件

例如,文件中包含兩個變量:

"gray or green", "blond" 
"ble", "red" 
"brown", "rou" 
"gray or green", "blond" 
"blue", "brown" 
"brown", "black" 
"gray or green", "black" 

我嘗試下面的代碼:

data color ; 
    infile 'file path' DLM = " , " ; 
    input v1 $ v2 $ ; 
    v1 label = "eyes colour" v2 = "hair colour"; 
run; 

proc print data = color; 
run; 
+0

例如,文件中包含兩個變量(V1 =眼睛的顏色,V2 =髮色): 「灰色或綠色」, 「金髮」, 「藍」,「紅「,」 「brown」,「rou」, 「gray or green」,「blond」, 「blue」,「brown」, 「brown」,「black」, 「gray or green」 , 我試過以下代碼: 數據顏色; infile'文件路徑'DLM =「,」; input v1 $ v2 $; v1 label =「眼睛顏色」v2 =「髮色」; 跑; proc print data = color; 跑; –

+0

你發現附加鏈接到該文件:http://www-math.univ-poitiers.fr/~phan/masterMMAS/documents/1m09/yeux-cheveux.txt感謝您的幫助 –

+0

@羅伯特他做到了,但在註釋。請將您的代碼添加到問題中,而不是評論中。 – Reeza

回答

1

格式爲CSV,你可以使用DSD選項來讀取文件。

DSD指定當數據值用引號引起來時,該值內的分隔符被視爲字符數據。當您使用LIST輸入並將默認分隔符設置爲逗號時,DSD選項將更改SAS如何處理分隔符。當您指定DSD時,SAS會將​​兩個連續的分隔符視爲缺失值並從字符值中刪除引號。

https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000146932.htm

data want; 
infile cards DSD; 
informat var1 var2 $20.; 
input var1 $ var2 $; 
cards; 
"gray or green", "blond" 
"ble", "red" 
"brown", "rou" 
"gray or green", "blond" 
"blue", "brown" 
"brown", "black" 
"gray or green", "black" 
; 
run; 
+1

解釋DSD選項的作用會更好。 – Joe

+0

感謝您的澄清。我會嘗試看看結果。美好的一天 –

+0

謝謝你的幫助 –