Diese Aktion übermittelt SAS/IML-Programme an CAS. Sie ermöglicht die Ausführung von IML-Code auf dem CAS-Server und bietet Optionen zur Steuerung der Anzeige von Ergebnissen, der Protokollierung von Quellcode und der Verwaltung von Ausgabetabellen. Die IML-Aktion ist besonders nützlich für parallele Berechnungen.
| Parameter | Beschreibung |
|---|---|
| code | Gibt eine Eingabezeichenfolge an, die ein SAS/IML-Programm enthält. Dies ist ein erforderlicher Parameter. (Alias: imlstring) |
| display | Gibt eine Liste von Ergebnistabellen an, die zur Anzeige an den Client gesendet werden sollen. Weitere Informationen zur Angabe des 'display'-Parameters finden Sie im gemeinsamen Parameter 'displayTables' (Anhang A: Allgemeine Parameter). |
| display.caseSensitive | Gibt an, ob bei der Namenssuche für die Anzeige die Groß-/Kleinschreibung beachtet werden soll. |
| display.exclude | Gibt an, ob die in 'names' angegebenen Tabellen von der Anzeige ausgeschlossen werden sollen. |
| display.excludeAll | Gibt an, ob alle Tabellen von der Anzeige ausgeschlossen werden sollen, außer denen, die explizit in 'names' angegeben sind. |
| display.keyIsPath | Gibt an, ob die Schlüssel in 'names' als Pfade behandelt werden sollen. |
| display.names | Gibt die Namen der anzuzeigenden Tabellen an. |
| display.pathType | Gibt den Typ des Pfads an ('LABEL' oder 'NAME'). |
| display.traceNames | Gibt an, ob die Namen von Tabellen nachverfolgt werden sollen, die während der Verarbeitung angezeigt werden. |
| echoSource | Gibt Informationen an, die in das Protokoll ausgegeben werden sollen. Der Standardwert ist 'NONE'. - ALL: Gibt das Programm und alle IMLMLIB-Module an das Protokoll aus. - NONE: Gibt nichts an das Protokoll aus. - PROGRAM: Gibt das Programm an das Protokoll aus. |
| nthreads | Gibt die Anzahl der Threads an, die auf jedem Knoten verwendet werden sollen. Dieser Parameter wird für parallele Berechnungen verwendet. Wenn auf 0 gesetzt, werden alle verfügbaren Threads verwendet. Unter bestimmten Umständen kann die IML-Aktion weniger Threads verwenden, als im Parameter angegeben, da die internen Algorithmen der Aktion festlegen, dass eine kleinere Anzahl von Threads vorzuziehen ist. (Bereich: 0–128) |
| outputTables | Listet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen. Weitere Informationen zur Angabe des 'outputTables'-Parameters finden Sie im gemeinsamen Parameter 'outputTables' (Anhang A: Allgemeine Parameter). (Alias: displayOut) |
| outputTables.groupByVarsRaw | Gibt an, ob Rohvariablen für Gruppierungen in den Ausgabetabellen enthalten sein sollen. |
| outputTables.includeAll | Gibt an, ob alle Ausgabetabellen einbezogen werden sollen. |
| outputTables.names | Gibt die Namen der Ergebnistabellen an, die als CAS-Tabellen gespeichert werden sollen, oder eine Zuordnung von Schlüssel-Werte-Paaren für die Umbenennung. |
| outputTables.repeated | Gibt an, ob wiederholte Ausgabetabellen gespeichert werden sollen. |
| outputTables.replace | Gibt an, ob vorhandene CAS-Tabellen mit denselben Namen ersetzt werden sollen. |
Erstellt eine CAS-Tabelle 'mycas.mydata' mit Beispieldaten für die Verwendung mit der IML-Aktion.
| 1 | DATA mycas.mydata; |
| 2 | INPUT x y; |
| 3 | CARDS; |
| 4 | 1 2 |
| 5 | 3 4 |
| 6 | 5 6 |
| 7 | ; |
| 8 | RUN; |
Dieses Beispiel zeigt, wie ein einfaches SAS/IML-Programm ausgeführt wird, das eine Matrix erstellt und deren Determinante berechnet.
| 1 | |
| 2 | PROC CAS; |
| 3 | iml.iml / code = 'A = {1 2, 3 4}; |
| 4 | detA = det(A); |
| 5 | print detA; |
| 6 | '; |
| 7 | RUN; |
| 8 |
Dieses Beispiel demonstriert die Ausführung eines komplexeren SAS/IML-Programms, das die Anzahl der Threads steuert und eine Ergebnistabelle als CAS-Tabelle speichert.
| 1 | PROC CAS; |
| 2 | iml.iml / |
| 3 | code = 'A = {1 2, 3 4, 5 6}; |
| 4 | B = {7 8, 9 10}; |
| 5 | C = A * B; |
| 6 | create cas.resultTable from C; |
| 7 | append cas.resultTable;' |
| 8 | nthreads = 4 |
| 9 | outputTables = {names = {"C" = {casouttable = {name = "resultTable", replace = true}}}} |
| 10 | ; |
| 11 | RUN; |
| 12 | PROC PRINT DATA=cas.resultTable; |
| 13 | RUN; |