iml

iml

Descripción

Envía programas SAS/IML en CAS. Esta acción le permite ejecutar código SAS/IML directamente en el entorno de Cloud Analytic Services (CAS), aprovechando su capacidad de procesamiento en memoria para análisis estadísticos y manipulación de matrices de alto rendimiento. Es una herramienta fundamental para la implementación de algoritmos personalizados y el análisis de datos complejos.

iml.iml <result=results> <status=rc> /\n code="string",\n display={\n caseSensitive=TRUE | FALSE,\n exclude=TRUE | FALSE,\n excludeAll=TRUE | FALSE,\n keyIsPath=TRUE | FALSE,\n names={"string-1" <, "string-2", ...>},\n pathType="LABEL" | "NAME",\n traceNames=TRUE | FALSE},\n echoSource="ALL" | "NONE" | "PROGRAM",\n nthreads=integer,\n outputTables={\n groupByVarsRaw=TRUE | FALSE,\n includeAll=TRUE | FALSE,\n names={"string-1" <, "string-2", ...>} | {key-1={casouttable-1} <, key-2={casouttable-2}, ...>},\n repeated=TRUE | FALSE,\n replace=TRUE | FALSE}\n;
Parámetros
ParámetroDescripción
codeProporciona una cadena de entrada que contiene un programa SAS/IML. Este es el corazón de la acción, donde se define toda la lógica de programación y las operaciones de cálculo. Se pueden utilizar todas las funciones y sentencias estándar de SAS/IML. Alias: imlstring. Este parámetro es obligatorio.
displayEspecifica una lista de tablas de resultados para enviar al cliente para su visualización. Permite controlar qué elementos de la salida del programa IML se presentan al usuario. Para obtener más información, consulte el parámetro común 'displayTables'. Subparámetros: caseSensitive (sensible a mayúsculas/minúsculas en los nombres), exclude (excluir tablas específicas), excludeAll (excluir todas las tablas por defecto), keyIsPath, names (nombres de tablas a incluir/excluir), pathType, traceNames.
echoSourceEspecifica la información del código fuente IML que se mostrará en el registro del servidor CAS. Esto es útil para depurar o auditar los programas ejecutados. Por defecto: NONE. Opciones: - ALL: Muestra el programa IML completo y todos los módulos IMLMLIB cargados en el registro. - NONE: No muestra ninguna parte del código fuente del programa IML en el registro. - PROGRAM: Muestra únicamente el programa IML principal en el registro, excluyendo los módulos IMLMLIB.
nthreadsEspecifica el número de hilos (threads) a utilizar en cada nodo para la ejecución de cálculos paralelos dentro del programa SAS/IML. La paralelización puede acelerar significativamente las operaciones intensivas en computación. Cuando se establece en 0, se utilizan todos los hilos disponibles en el nodo. Sin embargo, en algunas circunstancias, la acción IML podría utilizar menos hilos que el valor especificado porque los algoritmos internos optimizan la distribución de la carga. Rango permitido: de 0 a 128.
outputTablesEnumera los nombres de las tablas de resultados generadas por el programa SAS/IML que se guardarán persistentemente como tablas CAS en el servidor. Esto es crucial para almacenar y reutilizar los resultados de los análisis. Para obtener más información, consulte el parámetro común 'outputTables'. Alias: displayOut. Subparámetros: groupByVarsRaw, includeAll (incluir todas las tablas de resultados), names (especifica las tablas de resultados y sus propiedades CAS de salida, como el nombre y la biblioteca), repeated (permite reemplazar tablas existentes si ya existen con el mismo nombre), replace (reemplaza una tabla CAS existente si tiene el mismo nombre).
Creación de datos para la acción IML

La acción 'iml' procesa programas SAS/IML, que generalmente operan sobre datos ya existentes en tablas CAS o matrices definidas dentro del propio programa. La creación de datos iniciales en CAS se realiza típicamente con otras acciones (como 'upload' o 'loadTable') o con código IML que genera matrices directamente. El siguiente código SAS muestra cómo cargar un conjunto de datos simple en CAS que luego podría ser utilizado por un programa IML.

¡Copiado!
1/* Crear un conjunto de datos SAS de ejemplo */
2DATA mycas.sample_data;
3 INPUT x y z;
4 DATALINES;
51 10 100
62 20 200
73 30 300
8;
9RUN;
10 
11/* Este conjunto de datos 'mycas.sample_data' puede ser cargado y utilizado dentro de un programa IML */

Ejemplos

Este ejemplo muestra cómo ejecutar un programa SAS/IML simple en CAS. El programa define una matriz y la imprime en el registro de salida del servidor CAS.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 iml.iml / code='a={1 2, 3 4}; print a;';
3RUN;
4QUIT;
Resultado :
Se espera que el registro de salida de CAS muestre la matriz 'a' definida en el programa IML:
1 2
3 4

Este ejemplo demuestra cómo ejecutar un programa SAS/IML más complejo en CAS. El programa realiza operaciones matriciales, controla el 'echo' del código fuente al registro y guarda la matriz resultante como una tabla CAS. Se especifica el número de hilos para el procesamiento paralelo y se muestra un comentario dentro del código IML.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 iml.iml /
3 code='/* Este es un programa SAS/IML para demostrar operaciones con matrices */
4 /* Definir dos matrices */
5 a = {1 2, 3 4};
6 b = {5 6, 7 8};
7 
8 /* Multiplicar las matrices */
9 c = a * b;
10 
11 /* Imprimir la matriz resultante */
12 print c;
13 
14 /* Crear una tabla de resultados a partir de la matriz C */
15 create result_table from c[colname={\"Columna1\" \"Columna2\"}];
16 append from c;
17 quit;',
18 echoSource="PROGRAM", /* Muestra el código del programa IML en el registro */
19 nthreads=4, /* Utiliza 4 hilos para el procesamiento en cada nodo */
20 outputTables={names={\"result_table\"={name=\"mi_tabla_cas\", replace=TRUE}}} /* Guarda la tabla 'result_table' como 'mi_tabla_cas' en CAS y la reemplaza si ya existe */
21 ;
22RUN;
23QUIT;
Resultado :
El registro de salida de CAS mostrará el código SAS/IML (debido a 'echoSource="PROGRAM"') y la matriz 'c' resultante de la multiplicación. Se creará o reemplazará una tabla CAS llamada 'mi_tabla_cas' en la biblioteca por defecto, conteniendo los valores de la matriz 'c'.

FAQ

¿Qué es la acción iml?
¿Para qué se utiliza el parámetro "code" en la acción iml?
¿Para qué se utiliza el parámetro "display" en la acción iml?
¿Para qué se utiliza el parámetro "echoSource" en la acción iml?
¿Qué significa el valor "ALL" para "echoSource"?
¿Qué significa el valor "NONE" para "echoSource"?
¿Qué significa el valor "PROGRAM" para "echoSource"?
¿Para qué se utiliza el parámetro "nthreads" en la acción iml?
¿Para qué se utiliza el parámetro "outputTables" en la acción iml?
¿Qué es el conjunto de acciones iml?
¿Qué hace la acción iml?
¿Cuál es la sintaxis de CASL para la acción iml.iml?
¿Para qué se utiliza el parámetro code en la acción iml.iml?
¿Cuál es el alias del parámetro code?
¿Para qué se utiliza el parámetro display en la acción iml.iml?
¿Para qué se utiliza el parámetro echoSource en la acción iml.iml?
¿Cuál es el valor predeterminado del parámetro echoSource?
¿Cuáles son las opciones disponibles para el parámetro echoSource?
¿Para qué se utiliza el parámetro nthreads en la acción iml.iml?
¿Cuál es el rango de valores para el parámetro nthreads?
¿Para qué se utiliza el parámetro outputTables en la acción iml.iml?
¿Cuál es el alias del parámetro outputTables?
¿Para qué se utiliza el subparámetro names dentro de outputTables?