SAS proc sql with when then语句

时间:2015-06-15 19:01:16

标签: sas

我有一个"时间"在我的数据中多年。我需要使用PROC SQL基于以下内容创建一个新的var 如果时间>意味着(时间)则新的var = 1 else,new var = 0

我一直有不同的错误,我该如何改进我的代码?

proc sql;
create table v3 as
select*,case
    when time>mean(time)then time_group=1
    else time_group=0 as time_group,*
    from v2;
    quit;

2 个答案:

答案 0 :(得分:1)

你快到了:

proc sql ;
    create table v3 as select *, case when time>mean(time) then 1 else 0 end
        as time_group from v2;
quit;

答案 1 :(得分:0)

您的代码中存在几个问题。 1. CASE WHEN的语法有点偏差。 2.使用汇总函数(如Mean())时,需要确定均值范围。如果没有发出'group by'来定义范围,则范围是通用的。

proc sql;
    select *, case when age > mean(age) then 1 else 0 end as _age from sashelp.class group by sex;
quit;