【SAS BASE】IMPORT過程(適用於CSV檔案及其他分隔符檔案)
阿新 • • 發佈:2018-12-16
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=語句