我有一个"时间"在我的数据中多年。我需要使用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;
答案 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;