infile语句

来源:互联网 发布:js遍历对象的所有属性 编辑:程序博客网 时间:2024/06/09 17:10
原文地址:infile语句作者:sas1990

·导入纯文本文件中的数据时,文本文件中不能有变量名标识,至于哪个数值属于哪个变量用户必须自己清楚。通过INFILE和INPUT语句来转换。
·INFILE语句必须在DATA语句的后面,INPUT语句的前面。
1)pad选项。

文本文件中内容:

[转载]infile语句

data a;
infile 'd:resdatpad.txt'lrecl=90 pad ;
input x$ 20. y $20. z $ 30.;
run;

pad.txt的内容:

resdat.Bdinfo bdcd
ResDat.stkinfo stkcd
ResDat.cinfo Comcd
ResDat.stkinfo stkcd Date lstknm lstdt  exchflgstktype
ResDat.stkinfo stkcd Date lstknm lstdt
数据集a的内容:

[转载]infile语句

2)delimiter=选项(分隔符)。

data a;
infile cards delimiter=',';
input x y z;
cards;
3,6,9
1,3,5
8,8,8
;
run;

分隔符为多个字符。

data a;
infile cards delimiter='ab';
input x y z;
cards;
3aa6bb9
1ab3ba9
1a1b8
;
run;

分隔符分别为a,b,ab,ba,aa和bb。

3)DSD选项。

data scores;
infile datalines delimiter=',' ;
input test1 test2 test3;
datalines;
91,87,95
97,,92
,1,1
;

产生的数据集:

[转载]infile语句
若添加dsd,

data scores;
infile datalines delimiter=',' dsd;
input test1 test2 test3;
datalines;
91,87,95
97,,92
,1,1
;

则数据集score为:

[转载]infile语句

没有DSD时,两个相邻的分隔符组成一个分隔符,于是输入数据时会出错;加上DSD选项,将两个相邻分隔符之间的数作为缺失值处理。

4)应用infile语句导入外部数据文件的标准程序。

 

data delinfo(label='退市信息');

format

stkcd $6.

lstknm $12.

lstdt yymmdd10.

delistdt yymmdd10.

exchflg $1.;

informat

stkcd $6.

lstknm $12.

lstdt yymmdd10.

delistdt yymmdd10.

exchflg $1.;

label

stkcd='股票代码'

lstknm='最新股票名称'

delistdt='退市日期';

infile 'd:resdatdelinfo.txt'delimiter='09'x missover firstobs=2;

input stkcd $6. lstknm :$12. lstdt:yymmdd10. delistdt :~yymmdd10. exchflg stktype $1.;

run;




 

 

 

 

 

0 0