SAS中冒号的作用

data meeting;

input region $ mtg : mmddyy8.;

sendmail=mtg-45;

datalines;

N  11-24-99

S  12-28-99

E  12-03-99

W  10-04-99

;

proc print data=meeting;

format mtg sendmail date10.;

title 'When To Send Announcements';

run;

结果是

Obs    region          mtg      sendmail

1      N        24NOV1999    10OCT1999

2      S        28DEC1999    13NOV1999

3      E        03DEC1999    19OCT1999

4      W        04OCT1999    20AUG1999

这个冒号叫做 colon modifier, 一般用于防止数据读不全

用:的意思就是一直读到遇到空格为止(如果是字符串变量那么就读到空格或者定义的冒号后面长度,哪个先满足就哪个)。

读完region以后指针就在region数据后面那个空格处,加上mtg的8个字符,一共需要读9个字符

但是如果用mmddyy8. 的话就只能读到 11-24-9, 如果加个冒号那么就保证能读到空格位置,所以能读成11-24-99, 如果把 mmddyy8.改成mmddyy9. 那么就都一样了

你可能感兴趣的:(SAS中冒号的作用)