1. 程式人生 > >【SAS BASE】IMPORT過程(適用於CSV檔案及其他分隔符檔案)

【SAS BASE】IMPORT過程(適用於CSV檔案及其他分隔符檔案)

1、PROC IMPROT的特點

  • 預設情況下,PROC IMPORT掃描資料檔案的前20行,並據此為變數分配變數型別(數值型or字元型);
  • 自動為字元型變數分配長度,為數值型變數分配格式為BEST32(自己總結,不一定對);
  • 將連續的兩個分隔符看作是缺失值;
  • 讀入某一行資料時,若該行資料不足以分配給變數,則分配後面的變數為缺失值:

2、PROC IMPORT的一般形式為:

1 PROC IMPROT DATAFILE='filename' OUT=data-set;
  • DBMS Identifier和REPLACE: SAS會通過檔案的副檔名來決定檔案型別,例如 .csv(DBMS=CSV)和 .txt(DBMS=TAB)。若檔案不是CSV或者TXT檔案,則需要在IMPORT語句後面加上DBMS=option選項。另外,為防止已有與OUT=data-set同名的檔案,加上REPLACE來覆蓋。
1 PROC IMPROT DATAFILE='filename' OUT=data-set DBMS= REPLACE;
  • 其他常用options:
1 /*options of PROC IMPORT*/
2 Datarows=n  *從第n行開始讀入資料,預設值是1;
3 Delimiters='delimiter'  *適用於分隔符不是comma、tab、space的情形,預設space;
4 Getnames=NO  *命令SAS不要從input檔案中的第一行讀入變數名,變數名為VAR1、VAR2。。。預設值為YES;
5 GUESSINROWS=N  *利用前n行來決定變數型別,預設為20;注意並不是放在PROC IMPROT後面,而是另取一行。
1 PROC IMPORT DATA='D:\使用者\CHENYING146\Desktop\CY\資料需求\20140724_gcg\data\ZC_0531.csv' 
2                                 OUT=DATA.ZC_0531 DBMS=CSV REPLACE;
3 GUESSINGROWS=2000;
4 RUN;

3、PROC IMPORT匯入EXCEL檔案:

1 PROC IMPORT DATAFILE='file-name.xls' 
2                      OUT=data-set 
3                      DBMS=Excel/XLS 
4                      SHEET=”sheet-name“ 
5                      RANGE="sheetname$UL:LR" 
6                      GETNAMES=NO REPLACE;
7 RUN;

備註:1. DBMS=Excel預設讀取僅前8行來判別變數的型別,而DBMS=XLS會讀取所有行;2. UL:例子R2C1,到cell級

4、PROC IMPORT匯入ACCESS檔案:

1 PROC IMPORT DATATABLE=’table-name.mdb'
2                      OUT=data-set
3                      DBMS=ACCESS/ACCESS97 REPLACE;
4 DATABASE=‘database-path’;

備註:特別要注意,匯入ACCESS檔案時,需要用DATATABLE=選項和DATABASE=語句