2014-11-14 40 views
1

我作爲SAS 9.3的新用戶的第一個問題。我想用proc import來讀取一個dlm =','的大文本文件。但是有一個變量在某些對象之間有「,」,例如。 「康涅狄格州哈特福德」。 (不是所有的人,其他人都喜歡「XL Center」)。在使用proc import到這個文本文件時,有什麼方法可以將「Hartford,CT」讀爲一個變量,就像「XL Center」一樣嗎? 非常感謝sas proc導入txt wth分隔符在觀察內

編輯在這裏:對不起,我不應該把報價放在記錄附近。在任何記錄中都沒有報價,即XL中心或康涅狄格州哈特福德。當dlm設置爲逗號時,該行具有哈特福德,CT在附加列上產生並且隨後將記錄轉移到錯誤的列中。

+0

你確定分隔符是不是真的 ' 「」',像 「哈特福德,CT」, 「F」, 「43」?在挪威這很正常。 –

+0

這裏有一個博客給出了另一個例子,其中帶逗號的字段被引號括起來:http://blogs.sas.com/content/sastraining/2010/11/19/why-cant-sas-read- my-csv-file/ –

+0

感謝您發佈技巧。儘管我的問題仍然存在,但它的作品很有魅力,因爲我的情況中沒有引用換行符。 – YXZ

回答

0

只要你的文本文件在分隔符周圍有引號,它就會自動工作。例如:

/* example data */ 
data _null_; 
    file "%sysfunc(pathname(work))/some.csv"; 
    put 'head1,head2,head3'; 
    put 'XL Center,1,"Hartford, CT"'; 
run; 

/* import */ 
proc import datafile="%sysfunc(pathname(work))/some.csv" 
    out=example 
    dbms=dlm 
    replace; 
    delimiter=","; 
    datarow=2; 
run; 

enter image description here

+1

沒有足夠的RP來投票,否則我會這樣做。雖然我的問題仍然存在,因爲在需要組合的記錄中沒有引號。 – YXZ

+2

在這種情況下,您將不得不返回到數據源提供程序,並要求它們以可讀格式提供(沒有能夠以這種方式讀取數據的軟件)。另一種方法(如果你有一個例子的封閉列表,比如)首先處理數據,將這些例子包含在「引號」中 - 然後用proc import或其他方法讀取它們。 –