SAS 讀取數據文件


每次讀取數據時需要告訴SAS3件事:
1:數據存在哪里?
2:數據的形式
3:創建的數據集的類型(永久/臨時)

1 讀取SAS數據集

DATA temp; /*temp 為創建的數據集名稱*/
INFILE 'C\mysas\data\temp.dat'; /*數據存放的位置 */
INPUT id 1-4 gender 6 height 8-9 weight 11-13; /*指名數據的類型,用column方式導入,也可根據實際情況使用list或着formatted*/
RUN;
1
2
3
4
2 讀取EXCEL 文件

PROC IMPORT DATAFILE='C:\mysas\dtasource\score.xls' /*指明excel文件存放位置*/
OUT = data_set_name /*指定輸出數據集名稱*/
DBMS = EXCEL REPLACE; /*告知SAS讀取的文件類型 ,REPLACE表明若數據集已存在則替換*/
SHEET = "sheet_name"; /*可選,讀取文件的sheet名*/
RANGE = "sheetname$a2:c4"; /*可選,讀取文件的位置*/
GETNAMRS = NO; /*可選,默認值YES,以讀取文件的第一行為標題名*/
MIXED = YES; /*可選,默認值為NO,當某列值同時包含2種數據類型使,默認將數值轉換為缺失值,若將其設為YES,則將數值轉換位字符類型*/
RUN;
1
2
3
4
5
6
7
8
3 在使用DATA步讀取數據集時,還有以下選項:
INFILE 下的選項 DLM= ,若使用列表讀取數據集,且使用空格分割數據,則不需要DLM選項,
若分隔符為逗號,則DLM= ‘,’;
若分隔符為制表符,則DLM= ‘09’X;
DSD選項:忽略用引號括起來的分隔符,不會把引號作為數值的一部分讀取,將兩個連續的分隔符視為缺失值
MISSOVER選項:告知SAS當前行數據不夠時,不要跳到下一行繼續讀取。
FIRSROBS = 選項告訴SAS從第幾行數據開始讀取,
OBS= 選項告訴SAS讀至第幾行;

例:
DATA example1;
INFILE 'C\mysas\data\temp.txt' DLM='09'X MISSOVER FIRSTOBS=2;
INPUT ID $ GENDER $ SCORE;
RUN;
1
2
3
4
5
NOTE:在讀取數據的時候,首先要查看原始數據源,在無法確定數據中的分隔符或者列寬時,
可運用SAS操作界面導入相應的數據,然后查看Log,根據log中的代碼編寫SAS code。
采取LIST 導入,column導入,或者Formatted 導入
---------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM