utiliza significado salida que por para pantalla mensaje instruccion imprimir funciones entrada datos sas output do-loops

significado - Cuando la instrucción de salida se especifica en el bucle SAS Do, ¿por qué difiere el valor almacenado para la variable de índice?



instruccion cin en c++ (3)

  1. En el conjunto de datos Work.Invest, ¿cuál sería el valor almacenado para Year?

    datos work.invest; hacer año = 1990 a 2004; capital + 5000; capital + (capital * .10); fin; correr;

    • a. desaparecido
    • segundo. 1990
    • do. 2004
    • re. 2005

La respuesta correcta dada en la guía de preparación de bases SAS es d.2005 .

  1. En la pregunta siguiente, el valor almacenado se da como 2004. ¿Cuál de las siguientes afirmaciones es falsa con respecto al programa que se muestra a continuación?

    datos work.invest; hacer año = 1990 a 2004; capital + 5000; capital + (capital * .10); salida; fin; correr;

    • a. La instrucción OUTPUT escribe valores actuales en el conjunto de datos inmediatamente.
    • segundo. El valor almacenado para Year es 2005.
    • do. La instrucción OUTPUT anula la salida automática al final del paso DATA .
    • re. El DO loop realiza 15 iteraciones.

La respuesta correcta para esto es b.2005. (identificar la declaración falsa es la pregunta).



Conceptos clave:

  • El contador se incrementa al final del ciclo.
  • La instrucción OUTPUT anula la salida implícita al final del paso de datos y escribe el estado actual de todas las variables en el conjunto de datos.

En la primera pregunta, eso significa que al final del ciclo, se incrementa a 2005, va a la declaración DO y dice STOP porque la condición DO no se cumple. Al final del paso de datos, la salida se genera con el contador en Año = 2005.

En la segunda pregunta, porque la instrucción OUTPUT está antes del final del contador, por lo que el resultado del valor es Año = 2004. Además, la instrucción de salida generará una fila para cada valor de Año, de modo que el ''valor almacenado'' no sea una buena pregunta porque habrá filas de Año = 1990 a 2004 en el conjunto de datos de salida.


primero codifica,

data work.invest; do year=1990 to 2004; Capital+5000; capital+(capital*.10); end; run;

Cómo funciona

  1. La variable "año" se incrementará cada vez que finalice la ejecución de las instrucciones de ciclo

  2. Durante el paso final, es decir, cuando año = 2004, las dos instrucciones dentro del ciclo do se ejecutarán y ahora el valor anual se incrementará a año = 2005. sin embargo, este valor 2005 no satisfará la condición de bucle. por lo tanto, la ejecución de do loop ha terminado.

  3. SAS ahora llega al final del paso de datos (No hay otras instrucciones para ejecutar). Ahora se ejecutará la instrucción de salida IMPLICIT.

  4. Tenemos dos variables aquí "año" y "Capital". Ambas variables con los últimos valores se escribirán en el conjunto de datos

el último valor para el año es 2005.

Resultado:

año Capital

2005 174748.6493

ahora tu segundo código,

data work.invest; do year=1990 to 2004; Capital+5000; capital+(capital*.10); output; end; run;

Nota: si hay una instrucción de salida EXPLICIT dada, SAS no ejecutará la salida IMPLICIT.

Cómo funciona

  1. La variable "año" se incrementará cada vez que finalice la ejecución de las instrucciones de ciclo

  2. Después de la segunda línea "capital + (capital * .10);" La declaración de salida IMPLICIT se ejecutará. por lo tanto, obtendremos 15 observaciones

  3. Durante el paso final, es decir, cuando año = 2004, se ejecutarán las dos instrucciones dentro de la declaración do loop + output y ahora el valor anual se incrementará a year = 2005. sin embargo, este valor 2005 no satisfará la condición de bucle. por lo tanto, la ejecución de do loop ha terminado.

  4. Como hay una declaración de salida EXPLÍCITA, SAS ya no hará más salida (IMPLÍCITO)

Resultado:

año Capital

1990 5500

.....

2003 153862.4085

2004 174748.6493