Ежедневные данные, не показывающие дни без данных - нужно также 0 дат для отчета - PullRequest
1 голос
/ 09 апреля 2019

Я делаю данные отчета для SAS VA. Пример из данных:

Дата - Клиенты

01Mar2019 - 4

02Mar2019 - 5

03Mar2019 - 2

05Mar2019 - 9

Таким образом, у меня 0 клиентов на 04Mar2019. Этот день не отображается в моих данных отчета как 0, потому что его нет в исходных данных.

Есть ли удобный способ получить все даты (всех) лет от SAS EG, а затем просто присоединиться к работе?

Вывод должен быть:

01Mar2019 - 4

02Mar2019 - 5

03Mar2019 - 2

04Mar2019 - 0

05Mar2019 - 9

Какие-нибудь советы?

Спасибо!

1 Ответ

0 голосов
/ 09 апреля 2019

Не уверен, что вы на самом деле делаете, но вы можете просто сгенерировать набор данных с одним наблюдением за дату и объединить их вместе.

data have ;
  input date customers;
  informat date date. ;
  format date date9.;
cards;
01Mar2019 4
02Mar2019 5
03Mar2019 2
05Mar2019 9
;

proc sql ;
  create table all_dates as 
  select min(date) as mindate, max(date) as maxdate
  from have
  ;
quit;

data all_dates;
  set all_dates;
  do date=mindate to maxdate;
    customers=0;
    output;
  end;
  format date date9.;
  keep date customers;
run;

data want;
  merge all_dates have;
  by date;
run;

Результаты:

Obs         date    customers

 1     01MAR2019        4
 2     02MAR2019        5
 3     03MAR2019        2
 4     04MAR2019        0
 5     05MAR2019        9
...