/****************************************************************************** * Programme : CSV Caslib Laden mit Informats * Reference : CSVCASE3DB * Source : https://www.wearecas.eu/en/sampleCode/CSVCASE3DB ******************************************************************************/ /* --- BLOC 1 --- */ /* Remplacez 'cloud.example.com' et '5570' par les valeurs de votre environnement */ /*options cashost="cloud.example.com" casport=5570;*/ /* Démarre la session Casauto si ce n'est pas déjà fait. */ /*cas casauto;*/ /* Création d'un fichier CSV temporaire dans une caslib accessible */ filename volume_basic temp; data _null_; file volume_basic; put '12-06-2019,"1,245",10%'; put '01-03-2020,"3,400",27%'; put '02-07-2020,"2,341",18%'; put '03-06-2020,"5,700",45%'; put '04-03-2020,"12,686",100%'; run; proc cas; session casauto; /* Charge le fichier CSV temporaire en mémoire CAS */ table.loadTable / path="volume_basic", caslib="casuser", /* Spécifie une caslib, ex: 'casuser' */ importOptions={ fileType="csv", getNames=false, vars={ {name="dt" type="double" informat="anydtdte10." format="nldate20."}, {name="volume" type="double" informat="comma9." format="comma."}, {name="pct" type="double" informat="percent8." format="percent."} } }, casout={name="volume_basic", replace=True, promote=True}; /* Promote rend la table globale */ /* Affiche les informations sur les colonnes de la table chargée */ table.columnInfo / table="volume_basic"; title "Valeurs numériques brutes (Exemple Basique)"; /* Récupère et affiche les données sans appliquer de formats */ table.fetch / table="volume_basic", fetchVars={ {name="dt", format=""}, {name="volume", format=""}, {name="pct", format=""} }; run; title "Formats appliqués par CAS (Exemple Basique)"; /* Récupère et affiche les données en appliquant les formats définis */ table.fetch / table="volume_basic", format=True; run; quit; /* Nettoyage : supprime la table CAS en mémoire et le fichier temporaire */ proc cas; session casauto; table.dropTable / caslib="casuser", name="volume_basic"; run; quit; filename volume_basic clear; /* --- BLOC 2 --- */ /* Remplacez 'cloud.example.com' et '5570' par les valeurs de votre environnement */ /*options cashost="cloud.example.com" casport=5570;*/ /* Démarre la session Casauto si ce n'est pas déjà fait. */ /*cas casauto;*/ /* Création d'un fichier CSV temporaire avec plus de données */ filename volume_inter temp; data _null_; file volume_inter; put '12-06-2019,"1,245",10%'; put '01-03-2020,"3,400",27%'; put '02-07-2020,"2,341",18%'; put '03-06-2020,"5,700",45%'; put '04-03-2020,"12,686",100%'; put '05-01-2020,"8,910",70%'; put '06-02-2020,"1,500",15%'; run; proc cas; session casauto; /* Charge le fichier CSV temporaire dans la caslib 'casuser' et le promeut */ table.loadTable / path="volume_inter", caslib="casuser", /* Spécifie explicitement la caslib 'casuser' */ importOptions={ fileType="csv", getNames=false, vars={ {name="DateTransaction" type="double" informat="anydtdte10." format="nldate20."}, {name="VolumeVendu" type="double" informat="comma9." format="comma."}, {name="PourcentageCroissance" type="double" informat="percent8." format="percent."} } }, casout={name="volume_inter_global", replace=True, promote=True}; /* Promouvoir pour accès global */ /* Affiche les 10 premières lignes de la table globale */ title "Données de Volume (Exemple Intermédiaire)"; table.fetch / table="volume_inter_global", to=10, format=True; run; quit; /* Nettoyage : supprime la table CAS globale et le fichier temporaire */ proc cas; session casauto; table.dropTable / caslib="casuser", name="volume_inter_global"; run; quit; filename volume_inter clear; /* --- BLOC 3 --- */ /* Remplacez 'cloud.example.com' et '5570' par les valeurs de votre environnement */ /*options cashost="cloud.example.com" casport=5570;*/ /* Démarre la session Casauto si ce n'est pas déjà fait. */ /*cas casauto;*/ /* Création d'un fichier CSV temporaire pour l'exemple avancé */ filename volume_adv temp; data _null_; file volume_adv; put '12-06-2019,"1,245",10%'; put '01-03-2020,"3,400",27%'; put '02-07-2020,"2,341",18%'; put '03-06-2020,"5,700",45%'; put '04-03-2020,"12,686",100%'; put '05-01-2020,"8,910",70%'; put '06-02-2020,"1,500",15%'; put '07-01-2020,"6,000",50%'; put '08-01-2020,"9,500",80%'; run; proc cas; session casauto; /* Charge le fichier CSV temporaire */ table.loadTable / path="volume_adv", caslib="casuser", importOptions={ fileType="csv", getNames=false, vars={ {name="Date" type="double" informat="anydtdte10." format="nldate20."}, {name="Volume" type="double" informat="comma9." format="comma."}, {name="CroissancePct" type="double" informat="percent8." format="percent."} } }, casout={name="volume_initial", replace=True, promote=False}; /* Exécute un DATA step en CAS pour créer une nouvelle variable et filtrer les données */ dataStep.runCode / code=" data casuser.volume_processed; set casuser.volume_initial; VolumeAjuste = Volume * (1 + CroissancePct); if VolumeAjuste > 5000 then output; run;", single="yes"; /* Affiche les informations sur la nouvelle table traitée */ table.columnInfo / table="volume_processed", caslib="casuser"; title "Données de Volume Traitées (Exemple Avancé)"; /* Récupère et affiche les données de la table traitée */ table.fetch / table="volume_processed", caslib="casuser", format=True; run; quit; /* Nettoyage : supprime les tables CAS et le fichier temporaire */ proc cas; session casauto; table.dropTable / caslib="casuser", name="volume_initial"; table.dropTable / caslib="casuser", name="volume_processed"; run; quit; filename volume_adv clear; /* --- BLOC 4 --- */ /* Remplacez 'cloud.example.com' et '5570' par les valeurs de votre environnement */ /*options cashost="cloud.example.com" casport=5570;*/ /* Démarre la session Casauto si ce n'est pas déjà fait. */ /*cas casauto;*/ /* Création d'un fichier CSV temporaire avec une variable catégorielle */ filename volume_cas_analysis temp; data _null_; file volume_cas_analysis; put '12-06-2019,"1,245",10%,Est'; put '01-03-2020,"3,400",27%,Ouest'; put '02-07-2020,"2,341",18%,Nord'; put '03-06-2020,"5,700",45%,Sud'; put '04-03-2020,"12,686",100%,Est'; put '05-01-2020,"8,910",70%,Ouest'; put '06-02-2020,"1,500",15%,Nord'; put '07-01-2020,"6,000",50%,Sud'; put '08-01-2020,"9,500",80%,Est'; run; proc cas; session casauto; /* Charge le fichier CSV temporaire avec une nouvelle variable 'Region' */ table.loadTable / path="volume_cas_analysis", caslib="casuser", importOptions={ fileType="csv", getNames=false, vars={ {name="Date" type="double" informat="anydtdte10." format="nldate20."}, {name="Volume" type="double" informat="comma9." format="comma."}, {name="CroissancePct" type="double" informat="percent8." format="percent."}, {name="Region" type="varchar" length=50} } }, casout={name="volume_regions", replace=True, promote=False}; /* Exécute une analyse de fréquence sur la variable 'Region' */ title "Analyse de Fréquence par Région (Exemple Viya/CAS)"; simple.freq / table={name="volume_regions", caslib="casuser"}, inputs={{name="Region"}}; /* Calcule les moyennes du volume par région */ title "Statistiques Descriptives par Région (Exemple Viya/CAS)"; simple.summary / table={name="volume_regions", caslib="casuser"}, casout={name="summary_volume_regions", replace=True}, subSet={"mean"}, group={{ name="Region"} }, inputs={{ name="Volume"} }; run; quit; /* Nettoyage : supprime les tables CAS et le fichier temporaire */ proc cas; session casauto; table.dropTable / caslib="casuser", name="volume_regions"; table.dropTable / caslib="casuser", name="summary_volume_regions"; run; quit; filename volume_cas_analysis clear;