【问题标题】:Converting type from character to numerical in SAS在SAS中将类型从字符转换为数字
【发布时间】:2020-12-03 20:52:58
【问题描述】:

首先,我必须将所有类别格式化为数字,然后我使用下面的代码来做到这一点并且成功了。我需要将类型从字符转换为数字,以便进行分析。我试过输入功能,但也没有用。任何帮助将不胜感激。

过程格式;

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.;

运行;

【问题讨论】:

    标签: sas


    【解决方案1】:

    您将格式与信息混合在一起。

    • 格式:“我如何在屏幕上为您显示一个数字?”
    • Informat:“如何将文本转换为数字?”

    您在上述第一步中的代码应为invalues。然后您使用输入进行翻译。您还需要将其分配给一个新变量 - 您不能只是将信息与变量相关联并神奇地获得一个数字。

    proc format;
      invalue sexi
         'Male'=1
         'Female'=2
      ;
    quit;
    
    data want;
      set have;
      sex_n = input(sex,sexi.);
    run;
    

    如果你愿意,你可以保持相同的变量名;我将在下一步中展示这一点,同时添加一种格式,使值“看起来”正确。

    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;
    

    您删除原来的名称,然后将新名称重命名为原始名称。我使用 _n 后缀来明确我在做什么,但这不是必需的;格式/信息中也没有“i”和“f”后缀(事实上,如果你愿意,你可以使用相同的名称),这只是我用来更容易区分的一种模式。

    【讨论】:

    • 我通常使用动词 attach 来表示 format 和 informat 语句的作用。动词 apply 更适用于 PUT() 和 INPUT() 函数的作用。
    • 我明白你的意思,尽管我会说 apply 可以具有相同的含义(例如,你将贴纸贴在孩子的手上)。 SAS 本身使用 associate,所以我改用了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多