Идеоматичный способ создать диапазон чисел в PROC SQL? - PullRequest
0 голосов
/ 22 октября 2018

Я хочу создать список лет.Поскольку мне просто нужна горстка, я делаю это так:

create table work.year_range
(YEAR num);
insert into work.year_range
    values (2006) values (2007) values (2008) values (2009) values (2010) values (2011)
    values (2012) values (2013) values (2014) values (2015) values (2016) values (2017);

, но это явно безобразно.Каков идеологический способ создания диапазона чисел в PROC SQL?

1 Ответ

0 голосов
/ 22 октября 2018

вы должны использовать do loop и hard, чтобы эмулировать то же самое в proc sql;

data year_range;
  do year= 2006 to 2017;
output;
end;
run;

Еще один грубый способ (не рекомендуется) делать proc sql - это использовать недокументированную монотонную функцию и набор данных, который имеетболее 11 записей, как показано ниже

 proc sql;
create tale work.year_range
select 2005 + monotonic() as year
from sashelp.class
where calculated year between 2006 and 2017;
...