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.
| Parámetro | Descripción |
|---|---|
| code | Proporciona 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. |
| display | Especifica 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. |
| echoSource | Especifica 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. |
| nthreads | Especifica 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. |
| outputTables | Enumera 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). |
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.
| 1 | /* Crear un conjunto de datos SAS de ejemplo */ |
| 2 | DATA mycas.sample_data; |
| 3 | INPUT x y z; |
| 4 | DATALINES; |
| 5 | 1 10 100 |
| 6 | 2 20 200 |
| 7 | 3 30 300 |
| 8 | ; |
| 9 | RUN; |
| 10 | |
| 11 | /* Este conjunto de datos 'mycas.sample_data' puede ser cargado y utilizado dentro de un programa IML */ |
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.
| 1 | PROC CAS; |
| 2 | iml.iml / code='a={1 2, 3 4}; print a;'; |
| 3 | RUN; |
| 4 | QUIT; |
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.
| 1 | PROC 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 | ; |
| 22 | RUN; |
| 23 | QUIT; |