在SAS中经常会遇到数值型变量与字符型变量之间进行相互转换,如何进行转换呢?
一、字符型转数值型
方法1:字符型变量通过运算进行转换,如Numeric = Character * 1。运算符可以转换,但是会有NOTE提示,不推荐用这种方式。
Where语句不能执行字符型的数值计算。
data t1;
input id$ name$ sex$ age;
cards;
1001 Tom F 25
1003 Lisa M 20
1005 Anna M 26
1002 Lyli M 21
;
run;
data t2;
set t1;
id1 = id * 1;
run;
data t2;
set t1;
where id = 1001;
run;
二、input和put
INPUT(source, informat.) 将字符转换为数值型
PUT(source, format.) 将数值转换为字符型
proc format;
value agefmt
low-<24 = "group1"
24-high = "group2";
run;
data t3;
retain id idnum name sex age agec;
set t1;
idnum = input(id,8.2);
agec = put(age,agefmt.);
run;
二、format示例
input示例来源:The Little SAS Book 中文版_4th
二、input中忽略无效数据信息
INPUT(source, <? | ??> informat.)
?|?? 忽略无效数据信息