选择SAS中的When语句

选择SAS中的When语句,sas,Sas,我想创建一个新列,并根据3个变量的组合指定一个值。例如,如果电池寿命为4,RAM(GB)为3,HD大小(GB)为40,则在新变量“Laptop_Class”中指定80。还有其他组合。如何在SAS中使用proc SQL实现这一点?您可以在proc SQL中实现这一点,但数据步骤的代码更少,更直观 data have; set have; if battery_life = 4 and ram = 3 and hd_size = 40 then new_var=80; else if ...

我想创建一个新列,并根据3个变量的组合指定一个值。例如,如果电池寿命为4,RAM(GB)为3,HD大小(GB)为40,则在新变量“Laptop_Class”中指定80。还有其他组合。如何在SAS中使用proc SQL实现这一点?

您可以在proc SQL中实现这一点,但数据步骤的代码更少,更直观

data have;
set have;

if battery_life = 4 and ram = 3 and hd_size = 40 then
   new_var=80;
else if .... then
...
run;

SQL替代数据步骤if/then是CASE WHEN

proc sql;
    create table test as select
        t1.*,

        case 
            when t1.battery_life = 4 and t1.ram = 3 and t1.hd_size = 40 then 80
            when ......... then 70
            when ......... then 60
        end as new_column

    from source_table t1;
quit;