2017-11-25 106 views
-1

我有一個excel文件,我想將文本分成SAS中的不同列。 在它看起來像這樣在同一列中的文件,我想拆它,擺脫引號:SAS編程,從一個文件中讀取並分離到不同的列中

ID;"City";"Year" 
1;"New york";NULL 
2;"stockton";"18" 

這就是我試圖做的:

data work.project ;      
infile "&path\users.csv" delimiter=';' missover dsd; 
input ID: $30. 
     City: $200. 
     Year: $5. ; 

run; 

proc print data=work.project; 
run; 

我的輸出:

觀測數據ID市創

1 ,,, 「ID 」「 城」 「」「年
2 ,,,」1「」new york「」NULL「
3 ,,,」2「」stockton「」「」18「
4 ,,,」3「」moscow「」「 NULL「

+0

您的問題標題說Excel,但問題中的代碼讀取.csv。這是什麼?請顯示您從示例代碼中獲得的輸出,並描述它是如何出錯的。代碼似乎爲我工作得很好。 – Quentin

+0

是的,你說得對,它是一個.csv文件!我現在在我的問題中添加輸出。我想擺脫引用...我嘗試使用例如$ quote200。,但後來我失去了價值 – lih

+2

我會仔細檢查您的文件。或者從這個問題中將你的示例文件粘貼到一個新的csv中,然後從這個問題中運行你的代碼。我的SAS數據集中沒有引號或附加逗號。在Windows上運行。 – Quentin

回答

0

而不是INPUT語句中的冒號和格式使用INFORMAT語句。

data work.project; 
    infile datalines4 delimiter=';' truncover dsd; 
    informat id $30. city $200. year $4.; 
    input ID City Year; 
    datalines4; 
1;"New York";NULL 
2;"Stockton";"18" 
;;;; 
run; 

proc print data=project; 
run; 
+0

SAS不需要使用INFORMAT來讀取字符變量。如果要定義變量,請使用LENGTH語句。 – Tom

相關問題