Publicado el :
CASL CREATION_INTERNE

Coerción de Parámetros

Este código también está disponible en: Deutsch English Français
En espera de validación
En el entorno SAS© Viya 4 y CASL, la coerción de parámetros permite a los usuarios simplificar la sintaxis de las llamadas a acciones CAS. Para los parámetros definidos como listas o arreglos (arrays), si un parámetro designado (a menudo 'name') es el único elemento que el usuario desea especificar, los corchetes o la estructura completa pueden omitirse. El servidor CAS convierte automáticamente el valor proporcionado para que coincida con el parámetro designado. Esto hace que el código sea más conciso y legible. Esta documentación presenta ejemplos para listas de parámetros y arreglos de parámetros, ilustrando cómo esta funcionalidad mejora la eficiencia de la programación.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos de SASHELP (iris) y creaciones de tablas internas a través de DATA step, cargadas en la memoria de CAS.

1 Bloque de código
PROC CAS / simple.summary
Explicación :
Este ejemplo demuestra la coerción de parámetros más simple para una lista de parámetros. El parámetro `table=` normalmente espera una lista con opciones como `name=`. Aquí, 'iris' se proporciona directamente como una cadena, y el servidor CAS la interpreta como el valor del parámetro `name` por defecto. Esto simplifica la sintaxis al omitir los corchetes y la clave 'name='. La `caslib` se especifica para garantizar la ubicación de la tabla 'iris'.
¡Copiado!
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 Bloque de código
PROC CAS / dataPreprocess.binning Data
Explicación :
Este ejemplo ilustra la coerción para un arreglo de parámetros, como el parámetro `inputs` de la acción `binning`. En lugar de especificar `inputs={{name="SepalLength"}, {name="PetalLength"}}`, podemos listar directamente los nombres de las variables en un arreglo de cadenas (`{"SepalLength", "PetalLength"}`). El servidor CAS interpreta cada cadena como el valor del parámetro `name` para cada elemento del arreglo. Esto hace que el código sea más conciso y legible. La tabla `iris` se carga en `casuser` para garantizar la autonomía del ejemplo.
¡Copiado!
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 Bloque de código
PROC CAS / regression.logistic Data
Explicación :
Este ejemplo avanzado muestra cómo combinar parámetros coercidos con especificaciones completas dentro del mismo arreglo, utilizando el parámetro `class=` que a menudo está presente en las acciones estadísticas (aquí, `regression.logistic`). Para la variable 'var1', solo se proporciona la cadena (`"var1"`), basándose en la coerción para `name="var1"`. Para 'var2', se utiliza una especificación completa (`{name="var2", order="FORMATTED"}`) para incluir una opción `order`. Esto ilustra la flexibilidad de usar la forma más simple cuando sea posible y la forma completa cuando se necesiten opciones adicionales.
¡Copiado!
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 Bloque de código
PROC CAS / table.loadtable Data
Explicación :
Este ejemplo demuestra la coerción al cargar una tabla en CAS. Primero, se crea una tabla SAS local (`work.local_data`). Luego, la acción `table.loadtable` se utiliza para cargar esta tabla en la memoria de CAS. Aquí, el valor de `path` (`"work.local_data"`) se proporciona directamente, y el servidor CAS lo coercióna para designar la fuente. De manera similar, el parámetro `target` se simplifica a `"my_loaded_table"`, el servidor lo interpreta como `name="my_loaded_table"`. El uso explícito de `caslib="casuser"` en la acción muestra cómo apuntar a una biblioteca específica.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Copyright © SAS Institute Inc. All Rights Reserved.