SAS 中讀取文件的方式


首先明確文件的格式:

1. 文本文件

2. xlsx 文件(電子表格文件)

對於文本文件,由於有很大的變化性,比如使用空格分隔,使用逗號分隔,使用冒號分隔等等,當然也可以按列讀取。

 (1)使用空格分隔

原始數據為:

 

1 * 使用空格分隔的文件數據 ;
2 data temp;
3 infile "C:\Users\hr\Desktop\person\raw.txt" delimiter=" ";
4 input age weight;
5 run;
6 
7 proc print data=temp;
8 run;

 結果是:

(2)使用逗號、冒號隔開,只需要將 delimiter= 中的內容換掉即可,其他同上。

1 * 使用空格分隔的文件數據 ;
2 data temp;
3 infile "C:\Users\hr\Desktop\person\raw.txt" delimiter=",";
4 input age weight;
5 run;
6 
7 proc print data=temp;
8 run;

(3)使用 tab 隔開

1 * 使用tab分隔的文件數據 ;
2 data temp;
3 infile "C:\Users\hr\Desktop\person\raw.txt" delimiter="09"x;
4 input age weight;
5 run;
6 
7 proc print data=temp;
8 run;

 

對於 xlsx 文件,和上面兩個不太一樣。

原始數據為:

 

(1)使用 sql 語句進行讀取

 1 * 讀取表格文件的方法 ;
 2 /* 第一種使用 sql 語句 */
 3 proc sql;
 4 connect to excel(path="C:\Users\hr\Desktop\person\raw.xlsx");
 5 create table person as
 6 select
 7     * 
 8 from
 9     connection
10 to
11     excel(select * from [sheet1$]);
12 disconnect from excel;
13 quit;

結果為:

 

(2)使用 import procedure 進行讀取,常使用這個,這個可以使用多個格式的文件。

 1 /* 使用 proc import 導入外部文件 */
 2 proc import out=Mysas.person2 datafile="C:\Users\hr\Desktop\person\raw.xlsx" dbms=excel replace;
 3     range = "Sheet1$";
 4     getnames = yes;
 5     mixed = no;
 6     scantext = yes;
 7     usedate = yes;
 8     scantime = yes;
 9 run;
10 
11 proc print data=person;
12 run;

結果為:

 


免責聲明!

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



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