Type : CREATION_INTERNE
Los ejemplos utilizan datos CSV generados directamente en el código a través de sentencias `filename`, garantizando su autonomía y reproducibilidad sin depender de archivos externos preexistentes en el sistema de archivos CAS.
| 1 | /* Remplacez 'cloud.example.com' et '5570' par les valeurs de votre environnement */ |
| 2 | /*options cashost="cloud.example.com" casport=5570;*/ |
| 3 | |
| 4 | /* Démarre la session Casauto si ce n'est pas déjà fait. */ |
| 5 | /*cas casauto;*/ |
| 6 | |
| 7 | /* Création d'un fichier CSV temporaire dans une caslib accessible */ |
| 8 | filename volume_basic temp; |
| 9 | DATA _null_; |
| 10 | file volume_basic; |
| 11 | put '12-06-2019,"1,245",10%'; |
| 12 | put '01-03-2020,"3,400",27%'; |
| 13 | put '02-07-2020,"2,341",18%'; |
| 14 | put '03-06-2020,"5,700",45%'; |
| 15 | put '04-03-2020,"12,686",100%'; |
| 16 | RUN; |
| 17 | |
| 18 | PROC CAS; |
| 19 | SESSION casauto; |
| 20 | |
| 21 | /* Charge le fichier CSV temporaire en mémoire CAS */ |
| 22 | TABLE.loadTable / |
| 23 | path="volume_basic", |
| 24 | caslib="casuser", /* Spécifie une caslib, ex: 'casuser' */ |
| 25 | importOptions={ |
| 26 | fileType="csv", |
| 27 | getNames=false, |
| 28 | vars={ |
| 29 | {name="dt" type="double" informat="anydtdte10." FORMAT="nldate20."}, |
| 30 | {name="volume" type="double" informat="comma9." FORMAT="comma."}, |
| 31 | {name="pct" type="double" informat="percent8." FORMAT="percent."} |
| 32 | } |
| 33 | }, |
| 34 | casout={name="volume_basic", replace=True, promote=True}; /* Promote rend la table globale */ |
| 35 | |
| 36 | /* Affiche les informations sur les colonnes de la table chargée */ |
| 37 | TABLE.columnInfo / TABLE="volume_basic"; |
| 38 | |
| 39 | title "Valeurs numériques brutes (Exemple Basique)"; |
| 40 | /* Récupère et affiche les données sans appliquer de formats */ |
| 41 | TABLE.fetch / |
| 42 | TABLE="volume_basic", |
| 43 | fetchVars={ |
| 44 | {name="dt", FORMAT=""}, |
| 45 | {name="volume", FORMAT=""}, |
| 46 | {name="pct", FORMAT=""} |
| 47 | }; |
| 48 | RUN; |
| 49 | |
| 50 | title "Formats appliqués par CAS (Exemple Basique)"; |
| 51 | /* Récupère et affiche les données en appliquant les formats définis */ |
| 52 | TABLE.fetch / TABLE="volume_basic", FORMAT=True; |
| 53 | RUN; |
| 54 | QUIT; |
| 55 | |
| 56 | /* Nettoyage : supprime la table CAS en mémoire et le fichier temporaire */ |
| 57 | PROC CAS; |
| 58 | SESSION casauto; |
| 59 | TABLE.dropTable / caslib="casuser", name="volume_basic"; |
| 60 | RUN; |
| 61 | QUIT; |
| 62 | filename volume_basic clear; |
| 1 | /* Remplacez 'cloud.example.com' et '5570' par les valeurs de votre environnement */ |
| 2 | /*options cashost="cloud.example.com" casport=5570;*/ |
| 3 | |
| 4 | /* Démarre la session Casauto si ce n'est pas déjà fait. */ |
| 5 | /*cas casauto;*/ |
| 6 | |
| 7 | /* Création d'un fichier CSV temporaire avec plus de données */ |
| 8 | filename volume_inter temp; |
| 9 | DATA _null_; |
| 10 | file volume_inter; |
| 11 | put '12-06-2019,"1,245",10%'; |
| 12 | put '01-03-2020,"3,400",27%'; |
| 13 | put '02-07-2020,"2,341",18%'; |
| 14 | put '03-06-2020,"5,700",45%'; |
| 15 | put '04-03-2020,"12,686",100%'; |
| 16 | put '05-01-2020,"8,910",70%'; |
| 17 | put '06-02-2020,"1,500",15%'; |
| 18 | RUN; |
| 19 | |
| 20 | PROC CAS; |
| 21 | SESSION casauto; |
| 22 | |
| 23 | /* Charge le fichier CSV temporaire dans la caslib 'casuser' et le promeut */ |
| 24 | TABLE.loadTable / |
| 25 | path="volume_inter", |
| 26 | caslib="casuser", /* Spécifie explicitement la caslib 'casuser' */ |
| 27 | importOptions={ |
| 28 | fileType="csv", |
| 29 | getNames=false, |
| 30 | vars={ |
| 31 | {name="DateTransaction" type="double" informat="anydtdte10." FORMAT="nldate20."}, |
| 32 | {name="VolumeVendu" type="double" informat="comma9." FORMAT="comma."}, |
| 33 | {name="PourcentageCroissance" type="double" informat="percent8." FORMAT="percent."} |
| 34 | } |
| 35 | }, |
| 36 | casout={name="volume_inter_global", replace=True, promote=True}; /* Promouvoir pour accès global */ |
| 37 | |
| 38 | /* Affiche les 10 premières lignes de la table globale */ |
| 39 | title "Données de Volume (Exemple Intermédiaire)"; |
| 40 | TABLE.fetch / TABLE="volume_inter_global", to=10, FORMAT=True; |
| 41 | RUN; |
| 42 | QUIT; |
| 43 | |
| 44 | /* Nettoyage : supprime la table CAS globale et le fichier temporaire */ |
| 45 | PROC CAS; |
| 46 | SESSION casauto; |
| 47 | TABLE.dropTable / caslib="casuser", name="volume_inter_global"; |
| 48 | RUN; |
| 49 | QUIT; |
| 50 | filename volume_inter clear; |
| 1 | /* Remplacez 'cloud.example.com' et '5570' par les valeurs de votre environnement */ |
| 2 | /*options cashost="cloud.example.com" casport=5570;*/ |
| 3 | |
| 4 | /* Démarre la session Casauto si ce n'est pas déjà fait. */ |
| 5 | /*cas casauto;*/ |
| 6 | |
| 7 | /* Création d'un fichier CSV temporaire pour l'exemple avancé */ |
| 8 | filename volume_adv temp; |
| 9 | DATA _null_; |
| 10 | file volume_adv; |
| 11 | put '12-06-2019,"1,245",10%'; |
| 12 | put '01-03-2020,"3,400",27%'; |
| 13 | put '02-07-2020,"2,341",18%'; |
| 14 | put '03-06-2020,"5,700",45%'; |
| 15 | put '04-03-2020,"12,686",100%'; |
| 16 | put '05-01-2020,"8,910",70%'; |
| 17 | put '06-02-2020,"1,500",15%'; |
| 18 | put '07-01-2020,"6,000",50%'; |
| 19 | put '08-01-2020,"9,500",80%'; |
| 20 | RUN; |
| 21 | |
| 22 | PROC CAS; |
| 23 | SESSION casauto; |
| 24 | |
| 25 | /* Charge le fichier CSV temporaire */ |
| 26 | TABLE.loadTable / |
| 27 | path="volume_adv", |
| 28 | caslib="casuser", |
| 29 | importOptions={ |
| 30 | fileType="csv", |
| 31 | getNames=false, |
| 32 | vars={ |
| 33 | {name="Date" type="double" informat="anydtdte10." FORMAT="nldate20."}, |
| 34 | {name="Volume" type="double" informat="comma9." FORMAT="comma."}, |
| 35 | {name="CroissancePct" type="double" informat="percent8." FORMAT="percent."} |
| 36 | } |
| 37 | }, |
| 38 | casout={name="volume_initial", replace=True, promote=False}; |
| 39 | |
| 40 | /* Exécute un DATA step en CAS pour créer une nouvelle variable et filtrer les données */ |
| 41 | dataStep.runCode / |
| 42 | code=" |
| 43 | data casuser.volume_processed; |
| 44 | set casuser.volume_initial; |
| 45 | VolumeAjuste = Volume * (1 + CroissancePct); |
| 46 | if VolumeAjuste > 5000 then output; |
| 47 | run;", |
| 48 | single="yes"; |
| 49 | |
| 50 | /* Affiche les informations sur la nouvelle table traitée */ |
| 51 | TABLE.columnInfo / TABLE="volume_processed", caslib="casuser"; |
| 52 | |
| 53 | title "Données de Volume Traitées (Exemple Avancé)"; |
| 54 | /* Récupère et affiche les données de la table traitée */ |
| 55 | TABLE.fetch / TABLE="volume_processed", caslib="casuser", FORMAT=True; |
| 56 | RUN; |
| 57 | QUIT; |
| 58 | |
| 59 | /* Nettoyage : supprime les tables CAS et le fichier temporaire */ |
| 60 | PROC CAS; |
| 61 | SESSION casauto; |
| 62 | TABLE.dropTable / caslib="casuser", name="volume_initial"; |
| 63 | TABLE.dropTable / caslib="casuser", name="volume_processed"; |
| 64 | RUN; |
| 65 | QUIT; |
| 66 | filename volume_adv clear; |
| 1 | /* Remplacez 'cloud.example.com' et '5570' par les valeurs de votre environnement */ |
| 2 | /*options cashost="cloud.example.com" casport=5570;*/ |
| 3 | |
| 4 | /* Démarre la session Casauto si ce n'est pas déjà fait. */ |
| 5 | /*cas casauto;*/ |
| 6 | |
| 7 | /* Création d'un fichier CSV temporaire avec une variable catégorielle */ |
| 8 | filename volume_cas_analysis temp; |
| 9 | DATA _null_; |
| 10 | file volume_cas_analysis; |
| 11 | put '12-06-2019,"1,245",10%,Est'; |
| 12 | put '01-03-2020,"3,400",27%,Ouest'; |
| 13 | put '02-07-2020,"2,341",18%,Nord'; |
| 14 | put '03-06-2020,"5,700",45%,Sud'; |
| 15 | put '04-03-2020,"12,686",100%,Est'; |
| 16 | put '05-01-2020,"8,910",70%,Ouest'; |
| 17 | put '06-02-2020,"1,500",15%,Nord'; |
| 18 | put '07-01-2020,"6,000",50%,Sud'; |
| 19 | put '08-01-2020,"9,500",80%,Est'; |
| 20 | RUN; |
| 21 | |
| 22 | PROC CAS; |
| 23 | SESSION casauto; |
| 24 | |
| 25 | /* Charge le fichier CSV temporaire avec une nouvelle variable 'Region' */ |
| 26 | TABLE.loadTable / |
| 27 | path="volume_cas_analysis", |
| 28 | caslib="casuser", |
| 29 | importOptions={ |
| 30 | fileType="csv", |
| 31 | getNames=false, |
| 32 | vars={ |
| 33 | {name="Date" type="double" informat="anydtdte10." FORMAT="nldate20."}, |
| 34 | {name="Volume" type="double" informat="comma9." FORMAT="comma."}, |
| 35 | {name="CroissancePct" type="double" informat="percent8." FORMAT="percent."}, |
| 36 | {name="Region" type="varchar" LENGTH=50} |
| 37 | } |
| 38 | }, |
| 39 | casout={name="volume_regions", replace=True, promote=False}; |
| 40 | |
| 41 | /* Exécute une analyse de fréquence sur la variable 'Region' */ |
| 42 | title "Analyse de Fréquence par Région (Exemple Viya/CAS)"; |
| 43 | SIMPLE.freq / |
| 44 | TABLE={name="volume_regions", caslib="casuser"}, |
| 45 | inputs={{name="Region"}}; |
| 46 | |
| 47 | /* Calcule les moyennes du volume par région */ |
| 48 | title "Statistiques Descriptives par Région (Exemple Viya/CAS)"; |
| 49 | SIMPLE.summary / |
| 50 | TABLE={name="volume_regions", caslib="casuser"}, |
| 51 | casout={name="summary_volume_regions", replace=True}, |
| 52 | subSet={"mean"}, |
| 53 | group={{ |
| 54 | name="Region"} |
| 55 | }, |
| 56 | inputs={{ |
| 57 | name="Volume"} |
| 58 | }; |
| 59 | RUN; |
| 60 | |
| 61 | QUIT; |
| 62 | |
| 63 | /* Nettoyage : supprime les tables CAS et le fichier temporaire */ |
| 64 | PROC CAS; |
| 65 | SESSION casauto; |
| 66 | TABLE.dropTable / caslib="casuser", name="volume_regions"; |
| 67 | TABLE.dropTable / caslib="casuser", name="summary_volume_regions"; |
| 68 | RUN; |
| 69 | QUIT; |
| 70 | filename volume_cas_analysis clear; |