SAS: Можете ли вы сохранить входную таблицу гистограммы, созданной SAS?

Поэтому я создаю гистограмму SAS в SAS с набором данных, который выглядит следующим образом:

id date default var1 log_var1 square_var1 ... cubic_var1
1  1    1        5    -3.3     0.9             1.2
1  2    0        15   -9.9     2.7             3.6
2  1    1        10   -6.6     1.8             2.4
...

Обратите внимание, преобразования не

log(var1) 

но на самом деле преобразование из регрессии так

log_var1 = alpha + beta log(var1)

Теперь я использую следующий код, сгенерированный задачей SAS для гистограммы:

SYMBOL1
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2
    CI=WHITE

    CV = _STYLE_
;
SYMBOL2
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
SYMBOL3
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
SYMBOL4
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
SYMBOL5
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
SYMBOL6
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2
    CI=WHITE

    CV = _STYLE_
;
Legend2
    FRAME
    ;
Legend1
    FRAME
    ;
Axis1
    STYLE=1
    WIDTH=1
    MINOR=NONE


;
Axis2
    STYLE=1
    WIDTH=1


;
Axis3
    STYLE=1
    WIDTH=1
    MINOR=NONE


 ;
TITLE;
TITLE1 "Bar-Line Chart";
FOOTNOTE;
FOOTNOTE1 "Generated by the SAS System (&_SASSERVERNAME, &SYSSCPL) on %TRIM(%QSYSFUNC(DATE(), NLDATE20.)) at %TRIM(%SYSFUNC(TIME(), TIMEAMPM12.))";
PROC GBARLINE DATA=WORK.SORTTempTableSorted
;
    BAR  var1
 /
FRAME   LEVELS=25
    COUTLINE=BLACK
    RAXIS=AXIS1
    MAXIS=AXIS2
    LEGEND=LEGEND2
;
    PLOT / SUMVAR=default
    TYPE=MEAN
    AXIS=AXIS3
    LEGEND=LEGEND1
;
    PLOT / SUMVAR=lin_var1
    TYPE=MEAN
    AXIS=AXIS3
;
    PLOT / SUMVAR=sigmoid_var1
    TYPE=MEAN
    AXIS=AXIS3
;
    PLOT / SUMVAR=square_var1
    TYPE=MEAN
    AXIS=AXIS3
;
    PLOT / SUMVAR=cubic_var1
    TYPE=MEAN
    AXIS=AXIS3
;
    PLOT / SUMVAR=log_var1
    TYPE=MEAN
    AXIS=AXIS3
;

/* -------------------------------------------------------------------
   End of task code
   ------------------------------------------------------------------- */
RUN; QUIT;
%_eg_conditional_dropds(WORK.SORTTempTableSorted);
TITLE; FOOTNOTE;
GOPTIONS RESET = SYMBOL;

Мой вопрос:

Могу ли я как-то сохранить или сохранить ввод для создания этой гистограммы? т.е. таблица, содержащая среднее значение по умолчанию, var1, Square_var1, Cuba_var1 для 25 равноотстоящих ячеек?

Предпосылка для этого заключается в том, что все входные данные имеют разные масштабы, поэтому я хотел бы стандартизировать входные данные, а затем построить графики.

Примечание: я могу потратить время на кодирование биннинга самостоятельно, но это действительно будет уловкой ленивого программиста!


person 78282219    schedule 09.04.2019    source источник


Ответы (1)


В процедуре GBARLINE нет опции для вывода рассчитанных параметров построения графика. Ваши графические параметры по умолчанию, вероятно, создают png изображение для html-страницы, которая используется для представления диаграммы для просмотра.

Измените графические устройства на svg, и ODS создаст исходный код html, содержащий инструкции по рисованию для создания видимого изображения. Инструкции будут в теге <g>. Итак, если вы действительно заинтересованы в том, чтобы быть ленивым и не вручную кодировать средние точки и значения осей, вы можете написать код для синтаксического анализа html и извлечения вычисленных средних точек и делений оси из тега <g>.

ods html5 file="c:\temp\gbarline.html";

goptions reset=all;
goptions device=svg;

… gbarline … 

ods html5 close;

… parse the ODS created c:\temp\gbarline.html … 
person Richard    schedule 09.04.2019
comment
Хорошая идея, попробую - person 78282219; 09.04.2019