Cómo examinar el estado de los objetivos ODS en SAS

Cómo examinar el estado de los objetivos ODS en SAS


Un programador de SAS solicitó ayuda en un foro de discusión: «¡Mi sesión de SAS no muestra tablas ni gráficos! Estoy tratando de usar PROC PRINT y otras técnicas, ¡pero no se muestra ningún resultado! ¿Qué puedo hacer?»

Las razones más comunes por las que es posible que no vea ningún resultado al generar tablas y gráficos son:

  1. La lista de selección se establece en NINGUNO o impide que aparezca la salida.
  2. Todos los destinos ODS están cerrados. Esto podría suceder cuando un programa usa ODS<objetivo> CERRAR para cerrar uno o más objetivos ODS.

Una solución que suele funcionar es finalizar la sesión actual de SAS e iniciar una nueva. Esto restablecerá todos los objetivos ODS. Sin embargo, si el problema ocurre cada vez que ejecuta un programa, entonces algo en el programa está interfiriendo con los objetivos ODS o la lista SELECT. En este caso, es útil comprender cómo examinar la lista SELECT y cómo verificar qué destinos ODS están abiertos. Este artículo le mostrará cómo hacer ambas cosas.

la solucion rapida

Saltemos directamente a la solución. Para asegurarse de que ve el resultado, envíe la declaración ODS SELECT ALL y luego asegúrese de tener un objetivo ODS abierto. Las siguientes declaraciones configuran la lista ODS SELECT y muestran los destinos ODS activos:

ods select all;                      /* clear the SELECT lists for all destinations*/
proc print data=sashelp.vdest; run;  /* display open ODS destinations */

El resultado que ve depende de la interfaz que esté utilizando para ejecutar SAS. En el antiguo entorno de ventanas SAS, es posible que vea un resultado como el siguiente:

Este resultado muestra que el objetivo abierto es el objetivo HTML. En la nueva interfaz de SAS Studio, puede ver un resultado como el siguiente:

Esta salida indica que hay dos objetivos abiertos. El objetivo HTML5 (WEB) es una versión más reciente del objetivo HTML. El objetivo LISTING es un objetivo pre-HTML heredado.

Si no ve ningún resultado de la llamada PROC PRINT, verifique el registro. Si no hay objetivos ODS abiertos, el registro muestra sugerencias como las siguientes:

NOTE: No observations in data set SASHELP.VDEST.
NOTE: There were 0 observations read from the data set SASHELP.VDEST.

En este caso, debe estudiar el código para averiguar por qué su programa cerró todos los objetivos. Puede reabrir objetivos ODS con bastante facilidad en el entorno de ventanas SAS. En SAS Studio, la mejor manera de abrir nuevos objetivos es a través de los menús y cuadros de diálogo: Opciones->Configuración->Resultados.

Las siguientes secciones analizan más de cerca estas dos declaraciones y analizan algunas declaraciones relacionadas, incluida la declaración ODS SHOW.

Examinar toda la lista ODS SELECT

El sistema ODS mantiene una lista SELECT para cada destino ODS. También mantiene una lista SELECT general (o «global») que se aplica a todos los objetivos. Para mostrar la lista SELECT «global», puede enviar la instrucción ODS SHOW:

ods show;       /* display the overall SELECT list in the log */

El resultado de esta declaración se muestra en el registro de SAS. Para asegurarse de que toda la salida se enruta a los destinos abiertos, querrá ver un mensaje de registro como este:

Current OVERALL select list is: ALL

Si ve un mensaje diferente en el registro, significa que la lista SELECT ha cambiado, lo que afectará el resultado que verá cuando intente mostrar un gráfico o una tabla. Cuando envía la instrucción ODS SELECT ALL, borra todas las listas SELECT y garantiza que todos los resultados lleguen a los destinos ODS abiertos.

También puede establecer y borrar listas SELECT específicas de destino. Por ejemplo, las siguientes declaraciones crean una lista SELECT restringida solo para el LISTING de destino. Puedes usar SAO<objetivo> MOSTRAR para mostrar una lista SELECCIONAR específica del objetivo como esta:

ods LISTING;                 /* open the LISTING destination */
ods LISTING select ANOVA ParameterEstimates;  /* select tables ONLY for LISTING */
ods show;                    /* display the overall SELECT list in the log */
ods LISTING show;            /* display the SELECT list for the LISTING destination */

El registro de SAS muestra el siguiente texto:

Current OVERALL select list is: ALL
Current LISTING select list is:
1. ANOVA
2. ParameterEstimates

El registro muestra que la lista SELECT para el objetivo LISTING filtra la salida. Cuando realiza el siguiente procedimiento, solo se muestran las tablas denominadas ANOVA y ParameterEstimates. Todas las demás tablas y gráficos se suprimen.

Puedes usar SAO<objetivo> SELECCIONAR TODO para eliminar un destino específico. Sin embargo, recomiendo usar ODS SELECT ALL sin especificar un objetivo, lo que eliminará todos los objetivos. Esto se muestra en el siguiente ejemplo:

ods select all;              /* clear the SELECT lists for all destinations*/
ods LISTING show;            /* display the SELECT list for the LISTING destination */
Current LISTING select list is set to default value (ALL).
Current OVERALL select list is: ALL

Investigar destinos ODS abiertos

¿Sabía que puede imprimir la vista de datos Sashelp.VDest para ver los objetivos ODS abiertos y el estilo utilizado para cada uno? Después de asegurarse de que la lista ODS SELECT esté vacía, ejecute las siguientes instrucciones PROC PRINT:

proc print data=sashelp.vdest;
run;

Verá una tabla como la de arriba. Cada fila muestra el nombre y el estilo de un objetivo ODS abierto. Como se mencionó anteriormente, cuando cierre todos los objetivos obtendrá una pista en el registro que indica:

NOTE: No observations in data set SASHELP.VDEST.
NOTE: There were 0 observations read from the data set SASHELP.VDEST.

Si no está familiarizado con la vista SasHelp.VDest, es una vista de una tabla PROC-SQL de solo lectura que contiene información sobre el estado actual de SAS. Las tablas de DICCIONARIO están documentadas en la documentación de PROC SQL. Si observa la documentación, puede ver que la tabla DICTIONARY.Destinations en PROC SQL contiene información sobre los destinos ODS abiertos. Si desea leer esta información mediante un procedimiento SAS que no sea SQL, utilice la vista SAHELP.VDest, que contiene la misma información.

resumen

Este artículo muestra cómo verificar y restablecer la lista ODS SELECT para asegurarse de que se muestren todos los resultados de SAS. El artículo también muestra cómo usar una tabla de diccionario (DICTIONARY.Destinations) o su vista de datos (Sashelp.VDest) para ver los destinos ODS abiertos.

Related post

Informe: empleos de energía limpia que benefician a todos los estados

Informe: empleos de energía limpia que benefician a todos…

E2: Mientras el Congreso se prepara para votar sobre la legislación antiinflacionaria, los datos sobre empleos limpios muestran que todos los…
¿Puede la adopción de EV escalar como lo hicieron los teléfonos móviles?

¿Puede la adopción de EV escalar como lo hicieron…

La transición hacia un futuro de energía limpia requiere la eliminación rápida de los vehículos convencionales y la introducción gradual de…
Los vehículos enchufables al 10,3 % en junio mientras las ventas de vehículos eléctricos en Italia ganan impulso

Los vehículos enchufables al 10,3 % en junio mientras…

El mercado automovilístico italiano está mostrando signos de recuperación y, como resultado, las matriculaciones de vehículos enchufables aumentaron hacia el final…

Leave a Reply

Tu dirección de correo electrónico no será publicada.