2015-06-15 2 views
0

У меня есть «время» var лет в моих данных. Мне нужно создать новый var, основанный на следующем: PROC SQL , если time> mean (time), затем новый var = 1 else, новый var = 0SAS proc sql with when then statements

У меня все по-другому возникают ошибки, как я могу улучшить свой код?

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; 

ответ

1

Ты почти там:

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

Есть пара вопросов, в вашем коде. 1. Синтаксис CASE WHEN немного неактивен. 2. При использовании обобщенных функций, таких как Mean(), вам нужно убедиться в объеме среднего значения. если для определения области не выдается «группа», область применения универсальна.

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

спасибо! – user3581800