SAS导入txt数据

本文介绍了如何使用SAS导入txt格式的数据,通过示例展示了具体的步骤和运行结果。
众所周知,在我们进行数据处理分析的时候,不会是一直自己手动输入,这就要求从外部读取数据了。
下边我们讲解从txt文件中将数据读取出来。

我们读取的txt文件如下college_inf.txt:

depart_id name age major location
A101|cy|22|software1|beijing|
B101|ltt|23|software2|beijingj|
C102|zhq|24|software3|shijiazhuang|
D103|zhang|25|software4|baoding|
E104|hao|88|software5|hebei|



下面是用到的SAS文件:

/********************************************
Target:读取存储在本地磁盘的txt文档,并将其中的数据存储到数据集中。
By:yyx
********************************************/
 
 
%macro loadtxt(lib,txtpath,filename,tname);
 
data &lib..&tname;
length Location $15.;
infile "&txtpath./&filename..txt" firstobs=2 delimiter='|' ;
input
Depart_id $
Name $
Age
Major $
Location $
;
 
label
Depart_id = '公寓号'
Name      = '姓名'
Age       = '年龄'
Major     = '专业'
Location  = '所在地'
;
run;
 
%mend loadtxt;
 
%let lib=yyx;
%let txtpath=d:\SAS_test;
%let filename=college_inf;
%let tname=read_txt1;
%loadtxt(&lib,&txtpath,&filename,&tname);



程序解读:
%macro 和 %mend 用来定义SAS宏语句,利用 infile语句将数据文件中的额数据读取进入SAS。
input语句定义读取进入的字段和类型。缺省值是数字,$代表的是字符型。
label语句给input定义的字段起一个别名,容易记住的名字。
例如上边代码就是定义的宏loadtxt,这个宏就相当于我们在其他语言中的函数,方法,在用的时候直接调用即可。
其中的宏名字括号中的是宏的参数, 实际上, 这些宏参数都是一个一个的宏变量 。
lib:逻辑库的名字
txtpath:我们要读取的txt文件的存储路径。
filename:txt文件的文件名(不包含.txt后缀)。
tname:数据集的名字。

在这里还要注意一个地方:
SAS默认的读取数据的字段长度是8个字节,如果超过这个长度,需要在 input语句的前方说明一下。利用 length指定字段长度。这个程序中,我指定的Location的字段长度,是字符型数据,长度是15。

firstobs指定的是SAS读取数据时,从文件的第几行开始读取,默认的是1,我这里指定了2,因为第一行我放了字段名称。
delimiter指定导入数据的字段分隔符。可以简写成 dlm。
最后的    %loadtxt(&lib,&txtpath,&filename,&tname);就是调用上边我们写的宏。

下面是运行结果:

转载于:https://my.oschina.net/dataRunner/blog/604624

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值