SAS 读取数据文件
每次讀取數(shù)據(jù)時(shí)需要告訴SAS3件事:
1:數(shù)據(jù)存在哪里?
2:數(shù)據(jù)的形式
3:創(chuàng)建的數(shù)據(jù)集的類型(永久/臨時(shí))
1 讀取SAS數(shù)據(jù)集
DATA temp; /*temp 為創(chuàng)建的數(shù)據(jù)集名稱*/
INFILE 'C\mysas\data\temp.dat'; /*數(shù)據(jù)存放的位置 */
INPUT id 1-4 gender 6 height 8-9 weight 11-13; /*指名數(shù)據(jù)的類型,用column方式導(dǎo)入,也可根據(jù)實(shí)際情況使用list或著formatted*/
RUN;
1
2
3
4
2 讀取EXCEL 文件
PROC IMPORT DATAFILE='C:\mysas\dtasource\score.xls' /*指明excel文件存放位置*/
OUT = data_set_name /*指定輸出數(shù)據(jù)集名稱*/
DBMS = EXCEL REPLACE; /*告知SAS讀取的文件類型 ,REPLACE表明若數(shù)據(jù)集已存在則替換*/
SHEET = "sheet_name"; /*可選,讀取文件的sheet名*/
RANGE = "sheetname$a2:c4"; /*可選,讀取文件的位置*/
GETNAMRS = NO; /*可選,默認(rèn)值YES,以讀取文件的第一行為標(biāo)題名*/
MIXED = YES; /*可選,默認(rèn)值為NO,當(dāng)某列值同時(shí)包含2種數(shù)據(jù)類型使,默認(rèn)將數(shù)值轉(zhuǎn)換為缺失值,若將其設(shè)為YES,則將數(shù)值轉(zhuǎn)換位字符類型*/
RUN;
1
2
3
4
5
6
7
8
3 在使用DATA步讀取數(shù)據(jù)集時(shí),還有以下選項(xiàng):
INFILE 下的選項(xiàng) DLM= ,若使用列表讀取數(shù)據(jù)集,且使用空格分割數(shù)據(jù),則不需要DLM選項(xiàng),
若分隔符為逗號(hào),則DLM= ‘,’;
若分隔符為制表符,則DLM= ‘09’X;
DSD選項(xiàng):忽略用引號(hào)括起來的分隔符,不會(huì)把引號(hào)作為數(shù)值的一部分讀取,將兩個(gè)連續(xù)的分隔符視為缺失值
MISSOVER選項(xiàng):告知SAS當(dāng)前行數(shù)據(jù)不夠時(shí),不要跳到下一行繼續(xù)讀取。
FIRSROBS = 選項(xiàng)告訴SAS從第幾行數(shù)據(jù)開始讀取,
OBS= 選項(xiàng)告訴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:在讀取數(shù)據(jù)的時(shí)候,首先要查看原始數(shù)據(jù)源,在無法確定數(shù)據(jù)中的分隔符或者列寬時(shí),
可運(yùn)用SAS操作界面導(dǎo)入相應(yīng)的數(shù)據(jù),然后查看Log,根據(jù)log中的代碼編寫SAS code。
采取LIST 導(dǎo)入,column導(dǎo)入,或者Formatted 導(dǎo)入
---------------------
轉(zhuǎn)載于:https://www.cnblogs.com/ly570/p/11161459.html
總結(jié)
以上是生活随笔為你收集整理的SAS 读取数据文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyhton数据类型
- 下一篇: HttpClient系列~StringC