Veröffentlicht am :
CASL CREATION_INTERNE

Parameter-Koerzition

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
In der SAS© Viya 4-Umgebung und CASL ermöglicht die Parameter-Koerzition den Benutzern, die Syntax von CAS-Aktionsaufrufen zu vereinfachen. Für Parameter, die als Listen oder Arrays definiert sind, können, wenn ein bestimmter Parameter (oft 'name') das einzige Element ist, das der Benutzer angeben möchte, die geschweiften Klammern oder die vollständige Struktur weggelassen werden. Der CAS-Server konvertiert dann automatisch den bereitgestellten Wert, um dem benannten Parameter zu entsprechen. Dies macht den Code prägnanter und lesbarer. Diese Dokumentation enthält Beispiele für Parameterlisten und Parameter-Arrays, die veranschaulichen, wie diese Funktion die Programmier-Effizienz verbessert.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden SASHELP-Daten (iris) und interne Tabellenerstellungen über DATA step, die im CAS-Speicher geladen werden.

1 Codeblock
PROC CAS / simple.summary
Erklärung :
Dieses Beispiel demonstriert die einfachste Parameter-Koerzition für eine Parameterliste. Der Parameter `table=` erwartet normalerweise eine Liste mit Optionen wie `name=`. Hier wird 'iris' direkt als Zeichenfolge bereitgestellt, und der CAS-Server interpretiert dies standardmäßig als Wert für den Parameter `name`. Dies vereinfacht die Syntax, indem die geschweiften Klammern und der Schlüssel 'name=' weggelassen werden. Die `caslib` wird angegeben, um den Speicherort der Tabelle 'iris' zu gewährleisten.
Kopiert!
1PROC CAS;
2 SESSION casauto;
3 
4 /* Utilisation avec coercition: 'iris' est coercé en name="iris" */
5 /* La caslib SASHELP est généralement accessible par défaut. */
6 SIMPLE.summary / TABLE="iris", caslib="SASHELP";
7RUN;
8QUIT;
2 Codeblock
PROC CAS / dataPreprocess.binning Data
Erklärung :
Dieses Beispiel veranschaulicht die Koerzition für ein Parameter-Array, wie den Parameter `inputs` der `binning`-Aktion. Anstatt `inputs={{name="SepalLength"}, {name="PetalLength"}}` anzugeben, können wir die Variablennamen direkt in einem Zeichenfolgen-Array (`{"SepalLength", "PetalLength"}`) auflisten. Der CAS-Server interpretiert jede Zeichenfolge als den Wert des `name`-Parameters für jedes Element des Arrays. Dies macht den Code prägnanter und lesbarer. Die `iris`-Tabelle wird in `casuser` geladen, um die Autonomie des Beispiels zu gewährleisten.
Kopiert!
1PROC CAS;
2 SESSION casauto;
3 /* S'assurer que la caslib 'casuser' existe et est active */
4 caslib _all_ assign;
5 
6 /* Charger la table iris dans la caslib 'casuser' pour l'exemple */
7 PROC CASUTIL;
8 load casdata="iris" incaslib="SASHELP" outcaslib="casuser" replace;
9 RUN;
10
11 /* Utilisation avec coercition pour le tableau 'inputs' */
12 dataPreprocess.binning /
13 TABLE="iris",
14 caslib="casuser",
15 inputs={"SepalLength", "PetalLength"};
16 
17 /* Nettoyage: suppression de la table temporaire */
18 TABLE.dropTable / name="iris", caslib="casuser";
19RUN;
20QUIT;
3 Codeblock
PROC CAS / regression.logistic Data
Erklärung :
Dieses fortgeschrittene Beispiel zeigt, wie koerzierte Parameter mit vollständigen Spezifikationen innerhalb desselben Arrays kombiniert werden können, wobei der Parameter `class=` verwendet wird, der häufig in statistischen Aktionen (hier `regression.logistic`) vorkommt. Für die Variable 'var1' wird nur die Zeichenfolge (`"var1"`) bereitgestellt, wobei auf die Koerzition für `name="var1"` zurückgegriffen wird. Für 'var2' wird eine vollständige Spezifikation (`{name="var2", order="FORMATTED"}`) verwendet, um eine `order`-Option einzuschließen. Dies veranschaulicht die Flexibilität, die einfachste Form zu verwenden, wenn dies möglich ist, und die vollständige Form, wenn zusätzliche Optionen erforderlich sind.
Kopiert!
1PROC CAS;
2 SESSION casauto;
3 caslib _all_ assign;
4 
5 /* Création d'une table d'exemple en mémoire CAS */
6 DATA casuser.mydata;
7 INPUT var1 $ var2 var3;
8 DATALINES;
9 A 10 1
10 B 20 0
11 A 15 1
12 C 25 0
13 B 12 1
14 D 30 1
15 ;
16 RUN;
17
18 /* Exemple d'action utilisant le paramètre 'class' avec coercition partielle */
19 /* Charger l'actionSet 'regression' si ce n'est pas déjà fait */
20 BUILTINS.LOADACTIONSET / actionSet="regression";
21
22 regression.logistic /
23 TABLE={name="mydata", caslib="casuser"},
24 model={target="var3"},
25 inputs="var2",
26 class={
27 "var1", /* Coercition pour name="var1" */
28 {name="var2", order="FORMATTED"} /* Spécification complète pour var2 avec option */
29 };
30
31 /* Nettoyage de la table */
32 TABLE.dropTable / name="mydata", caslib="casuser";
33RUN;
34QUIT;
4 Codeblock
PROC CAS / table.loadtable Data
Erklärung :
Dieses Beispiel demonstriert die Koerzition beim Laden einer Tabelle in CAS. Zuerst wird eine lokale SAS-Tabelle (`work.local_data`) erstellt. Anschließend wird die Aktion `table.loadtable` verwendet, um diese Tabelle in den CAS-Speicher zu laden. Hier wird der Wert von `path` (`"work.local_data"`) direkt bereitgestellt, wobei der CAS-Server ihn koerziert, um die Quelle zu bezeichnen. Ebenso wird der Parameter `target` zu `"my_loaded_table"` vereinfacht, wobei der Server ihn als `name="my_loaded_table"` interpretiert. Die explizite Verwendung von `caslib="casuser"` in der Aktion zeigt, wie eine bestimmte Bibliothek angesprochen wird.
Kopiert!
1PROC CAS;
2 SESSION casauto;
3 
4 /* S'assurer que la caslib 'casuser' existe et est active */
5 caslib _all_ assign;
6
7 /* Créer une table SAS locale pour l'exemple */
8 DATA work.local_data;
9 INPUT id name $;
10 DATALINES;
11 1 Alpha
12 2 Beta
13 3 Gamma
14 ;
15 RUN;
16 
17 /* Charger la table locale 'local_data' dans la caslib 'casuser' de CAS */
18 /* 'path' est coercé, 'target' est coercé */
19 TABLE.loadtable /
20 caslib="casuser",
21 path="work.local_data",
22 promote=TRUE,
23 target="my_loaded_table";
24 
25 /* Afficher les informations de la table chargée */
26 TABLE.tableInfo / name="my_loaded_table", caslib="casuser";
27
28 /* Nettoyage : supprimer la table chargée de CAS */
29 TABLE.dropTable / name="my_loaded_table", caslib="casuser";
30 
31 /* Nettoyage : supprimer la table de travail SAS locale */
32 PROC DATASETS lib=work nolist;
33 delete local_data;
34 RUN; QUIT;
35 
36RUN;
37QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © SAS Institute Inc. All Rights Reserved.