Что, если даты не убираются на графике
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | * Что, если даты не убираются на графике... * ВОПРОС : переменные даты, прекрасно отображающиеся в редакторе данных, не отображаются / отображаются частично / отображаются как звёздочки в редакторе данных. Что с этим можно сделать?. * ОТВЕТ: автор: rlevesque@videotron.ca. * Создадим пример данных для иллюстрации (как в решении AnswerNet за номером 100000483). new file. input program. loop #i = 1 to 1000. compute sub_date = xdate.date(rv.uniform(date.dmy(15,1,2000),date.dmy(15,2,2000))). end case. end loop. end file. end input program. execute. formats sub_date (edate10). * Проблема практическая: даты в силу своего формата могут просто не помещаться на графиках. * Одно из возможных решений такое: в некоторых ситуациях сами даты нам не нужны. Нужна * последовательная нумерация дат, начиная с некоторой начальной даты. Это может характеризовать * развитие процесса во времени от его начала - примеч. перев. *Предположим, нам интересна динамика поступления ответов на почтовый опрос, который начался 15 января 2000 года. *Данные выше содержат дату, в которую поступил очередной ответ. Требуется представить общую динамику на графике. *Введите дату начала опроса в формулу ниже. COMPUTE nb_days=CTIME.DAYS(sub_date-DATE.DMY(15,1,2000))+1. * Переменная nb_days - число дней, прошедших от момента начала опроса (первый день пронумерован как 1). * В других случаях вы можете использовать в качестве периодов обобщения дни недели или месяцы. AGGREGATE /OUTFILE=* /BREAK=nb_days /nb_resp = N(sub_date). FORMATS nb_days (F2.0). * После агрегирования переменная nb_resp содержит число ответов, пришедших в каждый из дней. * Отобразим динамику на графике. GRAPH /LINE(SIMPLE)=MEAN(nb_resp) BY nb_days /MISSING=REPORT. * В зависимости от числа дней в анализируемом периоде, вы можете использовать столбцовую диаграмму вместо графика. GRAPH /BAR(SIMPLE)=MEAN(nb_resp) BY nb_days /MISSING=REPORT. * Другая альтернатива - диаграмма разброса (scatter plot). GRAPH /SCATTERPLOT(BIVAR)=nb_days WITH nb_resp /MISSING=LISTWISE . * Диаграмма разброса имеет то преимущество над двумя другими вариантами, что пропущенные даты отображаются на графике * "как есть", то есть, на графике образуются пустые области, а значит, прямая времени (x) не искажается. * Чтобы получить тот же результат с предыдущими типами графиков, потребовалось бы вводить фиктивные наблюдения для пропущенных дат * (т.е. тех дат, в которые ответы не поступали). Например, если значения переменной nb_days у вас равны 1, 2, 4, 5,.., 10 * (т.е. пропущено значение nb_days=3), вам потребовалось бы включить его (вручную, например) как дополнительное наблюдение * со значением nb_days=3 и nb_resp=0. |
Related pages
...