2011-02-10 103 views
2

我有一堆csv文件。每個人都有不同時期的數據:在SAS中追加csv文件

filename file1 'JAN2011_PRICE.csv'; 
filename file2 'FEB2011_PRICE.csv'; 
... 

是否需要手動創建中間數據集,然後將它們全部附加在一起?有沒有更好的方法來做到這一點?

SOLUTION

從它是優選使用的文檔:

data allcsv; 
     length fileloc myinfile $ 300; 
     input fileloc $ ; /* read instream data  */ 

     /* The INFILE statement closes the current file 
     and opens a new one if FILELOC changes value 
     when INFILE executes      */ 
     infile my filevar=fileloc 
       filename=myinfile end=done dlm=','; 

     /* DONE set to 1 when last input record read */ 
     do while(not done); 
     /* Read all input records from the currently */ 
     /* opened input file       */ 
     input col1 col2 col3 ...; 
     output; 
     end; 
     put 'Finished reading ' myinfile=; 
datalines; 
path-to-file1 
path-to-file2 
... 
run; 

回答

2

要閱讀一堆CSV文件合併成一個單一SAS數據集,則可以使用一個單一的數據步驟中所述SAS文檔here。您需要本節中使用filevar= infile選項的第二個示例。

應該沒有理由創建中間數據集。

2

最簡單的方法是使用通配符。

filename allfiles '*PRICE.csv'; 

data allcsv; 
infile allfiles end=done dlm=','; 
input col1 col2 col3 ...; 
run; 
+0

我喜歡上述方式,因爲它不需要文件在一個目錄中。但是,如果所有人都在一個地方,這很好。 – 2011-02-10 14:07:35