在SAS中将字符类型转换为数字类型
首先,我必须将所有类别格式化为数字,我使用下面的代码来实现这一点,并且取得了成功。我需要将类型从字符转换为数字,以便运行分析。我尝试过输入功能,但也不起作用。任何帮助都将不胜感激 Proc格式在SAS中将字符类型转换为数字类型,sas,Sas,首先,我必须将所有类别格式化为数字,我使用下面的代码来实现这一点,并且取得了成功。我需要将类型从字符转换为数字,以便运行分析。我尝试过输入功能,但也不起作用。任何帮助都将不胜感激 Proc格式 Value $gender_num 'Male'=0 'Female'=1; Value $att 'Yes'=0 'No'=1; Value $bustrav 'Non-Travel'=1 'Travel_Frequently'=2 'Travel_Rarely'=3; Value $dpt 'Rese
Value $gender_num 'Male'=0 'Female'=1;
Value $att 'Yes'=0 'No'=1;
Value $bustrav 'Non-Travel'=1 'Travel_Frequently'=2 'Travel_Rarely'=3;
Value $dpt 'Research & Development'=1 'Human Resources'=2 'Sales'=3;
Value $edfd 'Life Sciences'=1 'Human Resources'=2 'Marketing'=3 'Medical'=4 'Technical Degree'=5 'Other'=6;
Value $ot 'Yes'=0 'No'=1;
Value $ms 'Divorced'=1 'Married'=2 'Single'=3;
Value $jr 'Healthcare Representative'=1 'Human Resources'=2 'Laboratory Technician'=3 'Manager'=4
“制造总监”=5名“研究总监”=6名“研究科学家”=7名“销售主管”=8名“销售经理”
代表性'=9
运行;
Proc Print data=work.empatt
format gender $gender_num.;
format attrition $att.;
format businesstravel $bustrav.;
format department $dpt.;
format educationfield $edfd.;
format overtime $ot.;
format maritalstatus $ms.;
format jobrole $jr.;
运行 你把信息和格式混为一谈
- 格式:“如何在屏幕上为您显示数字?”
- Informat:“如何将文本转换为数字?”
invalue
s。然后使用输入进行翻译。您还需要将其分配给一个新变量-您不能只将informat与变量关联,然后神奇地获得一个数字
proc format;
invalue sexi
'Male'=1
'Female'=2
;
quit;
data want;
set have;
sex_n = input(sex,sexi.);
run;
如果愿意,您可以保留相同的变量名;在下一步中,我将展示这一点,并添加一个格式,使值“看起来”正确
删除原始名称,然后将新名称重命名为原始名称。我使用_n后缀来明确我在做什么,但这不是必需的;格式/informat中的'i'和'f'后缀也不是(事实上,如果您愿意,您可以使用相同的名称),同样,我使用这种模式是为了更容易区分。格式和informat语句通常使用动词attach。动词apply更适用于PUT()和INPUT()函数的功能。我明白你的意思,不过我想说apply可以有相同的含义(例如,你在孩子的手上贴一张标签)。SAS本身使用associate,所以我切换到了它。谢谢非常感谢。这很有效!!
proc format;
invalue sexi
'Male'=1
'Female'=2
;
value sexf
1 = 'Male'
2 = 'Female'
;
quit;
data want;
set have;
sex_n = input(sex,sexi.);
format sex_n sexf.;
drop sex;
rename sex_n = sex;
run;