混合的输入样式和读取杂乱的原始数据
1.混合的输入样式
三种主要的输入样式:列表样式、列样式和格式化样式。可以混合使用。
*创建一个数据集parks;
*使用混合输入的方式读取数据文件NatPark.dat;
data parks;
infile 'd:\SAS\lianxi\MyRawData\NatPark.dat';
input parkname $ 1-22 state $ year @40 acreage comma9.;
run;
proc print data=parks;
title 'national parks';
run;
parkname:列样式输入
state和year:列表样式输入
acreage:格式化样式输入
@40:列指针,移动到第40列,并从第40列开始读取数据
@n:可以用于跳过不需要的数据,或者使用不同的输入格式两次读取同一个变量
2.读取杂乱的原始数据
@'character'列指针和冒号修饰符
- @'character'列指针
若你提取的数据总是在一个特定的字符或者单词之后,则可使用@'character'列指针。例:input @'Breed:' dogbreed $;
- 冒号修饰符
如果希望SAS读取到空格或者数据行的结束为止,则可使用冒号修饰符
例:
原始数据 **my dog sam breed: rottweiler vet bills: $478 **
不同input
语句所得的结果:
语句 | 变量dogbreed的值 |
---|---|
input @'breed:' dogbreed $; |
rottwerl |
input @'breed:' dogbreed $20.; |
rottweiler vet bill |
input @'breed:' dogbreed :$20.; |
rottweiler |
*创建一个数据集results;
*使用混合输入的方式读取数据文件Canoes.dat;
data results;
infile 'd:\SAS\lianxi\MyRawData\Canoes.dat';
input @'School:' school $ @'Time:' racetime :stimer8.;
run;
proc print data=results;
title 'results';
run;
注意:
若没有冒号修饰符,SAS读取到行末尾的时候,它将视图去下一行读取是时间值
参考文献
The Little SAS Book,Fifth Edition
网友评论