sql字符型转换为数值型_变量类型的转换

3702fdf2218f02764e64a0b865722a28.png 0b71b827201e746b77d8ab0751fbb7d9.png  SAS中的变量类型仅包含两种:数值型和字符型变量,使用proc import过程把excel导入到SAS的时候,默认情况下SAS会扫描数据文件的前20行,并依据此为变量分配变量类型(即字符或数值型),但是有时候excel中的数据会掩盖自身变量信息,比如在EXCEL中某一列看似都是数字类型的,SAS会错误的把字符型变量读成数值型变量,从而为SAS中后续的统计过程带来不便。 0b71b827201e746b77d8ab0751fbb7d9.png 1fdd5efe0327f975e89bfafc96f38e8c.png

比如SAS中导入的class数据集中年龄为字符型变量,此时进行统计分析,日志会提示错误,导致统计分析过程错误。

2cd477d6dc2f449fa94acf83cd71b73a.png

b50c99a46701dd7a95a76b0d3765ee43.png3a3e625eb12a59d68c6346d854ea9b59.png

为了避免这种情况的发生,我们需要对变量类型进行转化:

New-variable-name=input (old-character,informat.);

该语句适用于把字符型变量转换为数值型变量

New-variable-name=put ( old-numeric,format. );
该语句适用于把数值型变量转换为字符型变量,New-variable-name为欲生成的新变量的名称;old-character / old-numeric为待转换的原始变量的名称;informat.为变量的输入格式,注意后面的小数点,这是数值型变量的格式w.d,一般我们直接使用”best.”定义(w代表长度,d代表小数点后的位数);format.为变量输出格式,注意后面的小数点,这是字符型变量的格式$w.; 2cd477d6dc2f449fa94acf83cd71b73a.png

为了方便大家理解,举个例子,例如:把sashelp.class数据集中的年龄改成字符型变量,这里笔者仅是为了演示,实际中年龄当然是数值型变量;

data class1(drop=age);set sashelp.class;age1=put(age,$2.);/*把age变量转成字符型变量,并赋值给age1*/label age1= "年龄";/*把标签年龄赋值给age1*/rename age1=age;/*把变量age1重命名为age*/run;

然后把class1数据集中的年龄(字符型变量)改成数值型变量:

data class2(drop=age);set class1;age1=input(age,best.); /*把age变量转成数值型变量,并赋值给age1*/label age1= "年龄";/*把标签年龄赋值给age1*/rename age1=age;/*把变量age1重命名为age*/run;

通过以下语句查看变量的描述,可查看到变量类型已经成功转换。

proc  contents  data=class1/ data=class2;run;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值