迷失缠绵情愫中 发表于 2019-10-30 15:33:27

SAS中读取文件的方式


首先明确文件的格式:

1. 文本文件

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

对于文本文件,由于有很大的变化性,比如使用空格分隔,使用逗号分隔,使用冒号分隔等等,当然也可以按列读取。

(1)使用空格分隔

原始数据为:

* 使用空格分隔的文件数据 ;
data temp;
infile "C:\Users\hr\Desktop\person\raw.txt" delimiter=" ";
input age weight;
run;

proc print data=temp;
run;
结果是:


(2)使用逗号、冒号隔开,只需要将 delimiter= 中的内容换掉即可,其他同上。
* 使用空格分隔的文件数据 ;
data temp;
infile "C:\Users\hr\Desktop\person\raw.txt" delimiter=",";
input age weight;
run;

proc print data=temp;
run;

(3)使用 tab 隔开
* 使用tab分隔的文件数据 ;
data temp;
infile "C:\Users\hr\Desktop\person\raw.txt" delimiter="09"x;
input age weight;
run;

proc print data=temp;
run;

对于 xlsx 文件,和上面两个不太一样。
原始数据为:


(1)使用 sql 语句进行读取
* 读取表格文件的方法 ;
/* 第一种使用 sql 语句 */
proc sql;
connect to excel(path="C:\Users\hr\Desktop\person\raw.xlsx");
create table person as
select
    *
from
    connection
to
    excel(select * from );
disconnect from excel;
quit;

结果为:


(2)使用 import procedure 进行读取,常使用这个,这个可以使用多个格式的文件。
/* 使用 proc import 导入外部文件 */
proc import out=Mysas.person2 datafile="C:\Users\hr\Desktop\person\raw.xlsx" dbms=excel replace;
    range = "Sheet1$";
    getnames = yes;
    mixed = no;
    scantext = yes;
    usedate = yes;
    scantime = yes;
run;

proc print data=person;
run;

结果为:
页: [1]
查看完整版本: SAS中读取文件的方式