SAS中的input()函数可以将字符串转换为数值,put()函数可以将数值转换为字符串,它们都需要两个参数:
INPUT(source, <? | ??> informat.)
其中informat.是指source的格式,
示例1:
1 data _NULL_;
2 sale='2,115,353';
3 fmtsale=input(sale,comma9.);
4 put _ALL_;
5 run;
sale=2,115,353 fmtsale=2115353 _ERROR_=0 _N_=1
这里的sale被转换为了数值型的2115353
示例2:
18 data _NULL_;
19 numdate=112591;
20 chardate=put(numdate, z6.);
21 sasdate=input(chardate, mmddyy6.);
22 put _ALL_;
23 run;
numdate=112591 chardate=112591 sasdate=11651 _ERROR_=0 _N_=1
这个例子中,数值型112591首先被转换为了字符串'112591',然后字符串被转换为SAS格式的日期(数值型)
注:这里使用了input和put函数显式地进行了类型转换,如果是隐式类型转换,存在以下的限制:
1. 不符合数字的不会转换,比如 '2,115,353'不能转换为数字2115353,因为包含非法字符:逗号
2. where中不会发生类型转换,如果类型不一致,会报错。