SAS中数据类型转换函数以及自动转换规则

数据类型转换函数:

  1. 字符值→数值:var_new = INPUT( var_old, informat );
  2. 数值→字符值:var_new = PUT( var_old, format );

    在上述转换过程中:

  • INPUT()函数,informat(输入格式)为目标类型,即数值型
  • PUT()函数,format(输出格式)为转换的源类型,即数值型

INPUT()和PUT()不仅可以用于字符型数据与数值型数据之间的转换,还可以进行字符型数据不同格式之间的转换,只要informat 和format 满足以下原则即可:

  1. informat为目标类型
  2. format为源类型

自动转换:

1、生成临时变量到PDV中,完成赋值或运算
2、不能自动转换时,则变为缺失值。
3、避免使用自动转换。
4、WHERE语句中不支持自动转换,因为where语句在PDV之前执行。(WHERE语句也不能与自动变量以及新创建的变量连用)


字符型变量:var_str
数值型变量:var_num

一、字符型变量→数值型变量

  1. 赋值:var_num=var_str;
  2. 参与算数运算:var_num=var_str+1;
  3. 与数值型变量比较大小:if (var_str>var_num) then ...;
  4. 在函数中,参数要求是数值型变量:var_num=sum(var_str,10);

如果var_str转换后不能作为标准数值读入,则必须进行显示转换。
标准数值:

  1. 数字0-9
  2. 英文句号
  3. 科学计数E
  4. +、-

二、数值型变量→字符型变量

  1. 赋值:var_str=var_num;
  2. 与要求是字符型变量的运算符一起使用:var_str='a'||var_num;
  3. 在函数中,参数要求是字符型变量:var_str=trim(var_num);

自动转换的字符变量使用BEST12.的格式,并且转换后的字符值右对齐,开头由空格补齐。

data work.AreaCodes; 
    Phonenumber=3125551212; 
    Code1=substr(Phonenumber,1,3);/*Phonenumber的临时变量值为:‘  3125551212’,Code1=‘  3’*/
    Code2=substr(Phonenumber,1,4);/*Code2=‘  31’*/
run;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miya_o00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值