例子1:使用自定义的分隔符
缺省, INPUT使用空格作为分隔符. 这个DATA步使用逗号作为分隔符
data num;
infile datalines dsd;
input x y z;
datalines;
,2,3
4,5,6
7,8,9
;
使用dsd缺省将以逗号作为分隔
如果你的分割符有多个字符或者不是逗号,则可以使用下面句子
data nums;
infile datalines dsd delimiter='ab';
input X Y Z;
datalines;
1aa2ab3
4b5bab6
7a8b9
;
上面指定a, b, aa, ab, ba, bb 作为分隔符,输出下面数据
OBS X Y Z
1 1 . 2
2 4 5 .
3 7 8 9
如果输入的字符串中包含分隔符,可使用双引号把字符括起来
data scores;
infile datalines dsd;
input Name : $9. Score
Team : $25. Div $;
datalines;
Joseph,76,"Red Racers, Washington",AAA
Mitchel,82,"Blue Bunnies, Richmond",AAA
Sue Ellen,74,"Green Gazelles, Atlanta",AA
;
例子2:处理缺失值和不规则记录
下面例子使用missover防止由于不规则记录导致数据不是自己想要的结果
data weather;
infile datalines missover;
input temp1-temp5;
datalines;
97.9 98.1 98.3
98.6 99.2 99.1 98.5 97.5
96.2 97.3 98.3 97.6 96.5
;
产生的结果第1行有temp4 temp5值缺失,如果没有指定的话,temp4 和temp5会继续读下行数据的值放入其中
你也可以指定stopover 来中止输入处理,这样sas会报告错误,并设置_ERROR_=1,输出当前行
例子3:针对特定的字串扫描变长记录
使用scanover选择扫描以phone:开头的字符,并把其后的字符录入phone中,使用turnover选项用于跳过不含phone:字符的行
data
phone;
infile
datalines turnover
scanover
;
input
@
'phone:'
phone
$32.
;
datalines
;
Jenny's Phone Book
Jim Johanson phone: 619-555-9340
Jim wants a scarf for the holidays.
Jane Jovalley phone: (213) 555-4820
Jane started growing cabbage in her garden.
Her dog's name is Juniper.
J.R. Hauptman phone: (49)12 34-56 78-90
J.R. is my brother.
;;
run
;
例子4:用指定的编码读文件
libname myfiles 'SAS-data-library';
filename extfile 'external-file';
data myfiles.unicode;
infile extfile encoding="utf-8";
input Make $ Model $ Year;
run;