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; 5
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;
備注: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=語句
