Bonjour, A partir d’une variable texte, j’ai besoin d’extraire les premières lettres de chaque mot de la chaine de caractères. Exemples : à partir de variable1 Il fait beau Toto fait ses devoirs je souhaite obtenir variable2 IFB TFSD Existe-t-il une fonction SAS permettant de faire cette sélection ? Si non, avez-vous une idée du codage et des fonctions à utiliser pour obtenir le résultat attendu ? Merci d’avance. Bonjour. Il n’y a pas de fonction automatique dans SAS, […]
J’ai découvert une « proc delete » dans quelques programmes. N’ayant jamais vu cette procédure auparavant, je me suis empressé de regarder dans ma doc. Procédure inconnue. Aucune référence. J’ai été voir chez SAS/France, (cf. http://support.sas.com/documentation/cdl/en/allprodsproc/61917/HTML/default/a003135046.htm) : même résultat. Et pourtant elle marche, je l’ai testée moi aussi. Elle semble ne pas faire grand chose de plus que supprimer des tables ; mais j’aimerais en savoir plus. Bonjour. Cette procédure est en fait dérivée de la proc DATASETS qui contient une […]
Je voudrais supprimer des blancs à droite et à gauche de caractères en veillant à ne pas le faire dans la chaine de caractères afin de les concaténer. Ex : » Dupont » » Jean Paul « En version 8, il faut utiliser deux fonctions : LEFT et TRIM (la 1e supprime les blancs de gauche, la 2nde ceux de droite). En SAS v9, il y a une fonction STRIP qui fait les 2 d’un coup.
Bonjour. Je souhaite concaténer le nom et prénom d’un individu en supprimant à droite les blancs. Comment faire? Vous pouvez utiliser la fonction TRIM qui supprime les blancs à droite : Nom_complet = TRIM(prenom)!! » « !!TRIM(nom) ; Ou, en SAS v9, utiliser la fonction STRIP (suppression des blancs à gauche et à droite), ou encore les fonctions CATT (concaténation et suppression des blancs à droite) ou CATX (concaténation, élimination des blancs à gauche et à droite, insertion d’un caractère séparateur) […]
Existe-t-il une fonction SAS permettant de donner le code ascii d’un caractère ? Merci pour votre reponse Bonjour. Il s’agit de la fonction RANK, appliquée à une variable texte. La fonction BYTE fait l’opération inverse (renvoie un texte à partir du code Ascii). Attention, si la fonction RANK est exécutée sur MVS, elle renvoie le code EBCDIC.
Bonjour, j’aimerais savoir comment faire pour comparer des observations au seins d’une même variable. Par exemple, j’ai une variable nom et une variable adresse au sein d’une même table. J’aimerais regarder au seins de ma table s’il existe des observations qui ont les memes valeurs pour les 2 variables. Si c’est le cas, je veux attribuer un numéro identique à ces observations. Merci d’avance pour votre aide. Vous pouvez, après un tri de votre table, utiliser une étape Data […]
Bonjour Je suis en train de réaliser une appli sas/af et je souhaite savoir s’il est possible d’envoyer un mail à un destinataire dont l’e-mail se trouve dans un carnet d’adresses Outlook. Merci Voici un petit programme qui peut être lancé depuis une appli AF sans problème, c’est du SAS de base tout bête. On peut utiliser au choix l’adresse complète du destinataire (genre contact@od-datamining.com) ou son alias (Olivier Decourt) mais uniquement s’il n’y a pas d’équivoque possible (pas […]
J’ai un nombre de tables (de 1 à 40 ou 50, il faut que soit un paramètre) et avec un SET j’en crée une seule. Comment écrire ça sans répéter 40 ou 100 fois le noms des tables dans le SET. data ww.CMb; set ww.CM1b ww.CM2b … ww.CM40b; run; Merci Bonjour, et merci de votre question. Vous pouvez utiliser un programme comme celui-ci : %MACRO empilement (nbTables) ; DATA ww.CMb ; SET %DO i=1 %TO &nbTables ; […]
La procédure suivante proc transpose data=infic prefix=cnt out=outfic; var nocnt; by client; run ; va générer cnt1 à cntn. Comment récupérer le nombre de variables générées (n) dans une étape data ? Merci. Pour mettre ce nombre dans une macro-variable, voici un premier programme : DATA _NULL_ ; SET outfic ; ARRAY transpose cnt: ; CALL SYMPUT (« nbNllesVar », DIM(transpose)) ; STOP ; RUN ; Vous récupérez le nombre de variables créées par la procédure TRANSPOSE dans la macro-variable &nbNllesVar. […]
Je souhaite générer des tables automatiquement avec un programme sas, mais impossible d’utiliser les fonctions cards et datalines ! Quelle est l’origine du problème et existe-t-il une astuce pour y remédier ? Merci d’avance. exemple de script : %macro essai; data table; input variable; cards; 1 2 3 ; run; %mend essai; %essai; ERROR: The macro ESSAI generated CARDS (data lines) for the DATA step, which could cause incorrect results. The DATA step and the macro will stop executing. NOTE: […]
Bonjour, Je souhaiterai exploiter des données de BO sous SAS. Pour cela, je sauve mon .rep en .txt. Le séparateur est une tabulation. Est-il possible d’utiliser l’option « delimiter » avec ce type de séparateur ? Si oui, comment ?! Merci d’avance ! Dans l’instruction INFILE de l’étape Data, il faut préciser DELIMITER = « 09 »x qui représente une tabulation. Dans l’assistant d’import par fenêtres, il faut choisir DELIMITED FILE (*.*) comme type de fichier, puis dans l’écran suivant, après avoir indiqué […]
Bonjour, J’utilise de très grosses tables (plusieurs millions de lignes; entre 10 et 50 variables) que j’ai créées à partir de fichiers texte. Pour les variables caractères, c’est le nombre que j’ai précisé après $ qui a été pris en compte. Pour les champs numériques c’est Best12, quelle que soit la longueur que j’avais spécifiée. J’ai crée des index sur mes tables. Les temps d’accès sont relativement longs je trouve. Je pensais compresser mes tables. Comment m’assurer que mes tables […]
Bonjour, Je fais un format à partir d’une table sas, jusque-là pas de problème. Mon souci est lorsque j’applique ce format, pour les valeurs qu’il ne trouve pas il n’applique aucun format. Je voudrais ajouter dans mon format une ligne pour les « other » valeurs. Voilà mon pgm : data format.fmtDRCourt; set tdbprod.BaseCourtiers (keep=gc DR rename=(gc=start dr=label)); by start; type= »N »; /* N Numérique */ fmtname= »DRCOURT »; run; proc format lib=format cntlin = format.fmtDRCourt /*fmtlib*/; run; Je vous propose la variante suivante. […]
Bonjour, j’ai une variable date dans un fichier, et je souhaite faire la répartition en fonction de tranche gérées par un format que je crée… et je n’arrive pas à créer ce format (sans passer par le calcul du nombre de jours correspondants à ma date..) j’ai essayé ça : proc format; value anccrea low- mdy(12,31,2002) = « 1- avant 01/2003 » mdy(12,31,2002)-mdy(12,31,2004)= « 2- entre 2003 et 2004 » mdy(12,31,2004)-high= « 3- depuis 2005 » other = »??? »; run; et ça proc format; value […]
Bonjour, Je souhaiterais créer un label pour une variable contenant une apostrophe. Mais, SAS prend cette apostrophe comme la fin du label : proc format; value $test ’10’ = ‘l’arbre’; run; Comment faire comprendre à SAS qu’il ne s’agit pas de la fin du label ? Merci Bonjour. Le plus simple pour résoudre votre problème est tout simplement d’écrire votre libellé entre guillemets doubles. Il n’y aura alors pas de confusion avec les apostrophes. Dans SAS, les guillemets doubles et […]
Bonjour, j’aurais voulu savoir comment manipuler les cellules de la sortie afin d’enlever les cellules (ou lignes) dont je n’ai pas besoin. Bonjour. Les seuls moyens de masquer des lignes (ou des colonnes) entières de la procédure Tabulate sont : de filtrer les données en amont avec un WHERE d’utiliser un format pour associer les valeurs des valeurs des variables CLASS à ne pas afficher avec des valeurs manquantes (par défaut, la procédure Tabulate n’affiche pas les valeurs manquantes) […]
Bonjour, J’ai généré 1 fichier pdf avec des proc tabulate. Comment faire pour remplacer les points par des virgules dans ma sortie? Merci. Bonjour. PROC TABULATE DATA = … FORMAT = NUMX12.2 ; devrait faire l’affaire.
Bonjour, Je voudrais obtenir mes résultats avec un format français, notamment pour remplacer tous les points par des virgules. Il me semble qu’il faut utiliser la fonction LOCALE= , mais je ne trouve pas la syntaxe exacte, ni où il faut la placer exactement dans un programme. Bonjour. Pour obtenir des affichages « européens » avec une virgule en guise de séparateur décimal, on peut d’abord utiliser le format NUMXc.d avec, comme d’habitude dans un format, c le nombre total de […]
Bonjour, Dans le cadre d’un travail sur le marché du logement, je souhaiterais comparer le comportement des moins de 35 ans au comportement de l’ensemble de la population. Pour cela, j’ai pensé à un format multilabel du type: proc format; value pop (multilabel) low-35= »35 ans et moins » low-high/* ?? */= »tout le monde »; run; mais si j’applique ce format dans une proc freq par exemple: proc freq data=****; table age; format age pop.; run; j’obtiens bien les 35 […]
Existe -t-il un format SAS numérique qui ajoute un séparateur de milliers ? par exemple : 1350 devient 1 350 Oui, à partir de SAS 9 il y a le format NLNUM. Vous pouvez aussi le créer facilement avec ce petit programme : PROC FORMAT ; PICTURE milliers (ROUND) 0 – HIGH = « 000 000 009″ ; RUN ; Vous utilisez ensuite le format milliers. quand vous en avez besoin. Pour plus d’informations sur les formats « picture », voir Les […]
Bonjour, je crée un classeur EXCEL avec plusieurs onglets en utilisant « tagsets.excelXP ». Je souhaiterais que dans chaque onglet, la 1ère ligne contienne un titre qui précise le contenu de l’onglet. Sauriez-vous comment obtenir ce type de résultat. Merci d’avance PS. L’instruction « title » colle le titre en entête de page pour l’impression, mais pas dans les lignes du classeur. Bonjour. Il existe deux autres options pour répondre à votre besoin : pour que les titres des instructions TITLE apparaissent en […]
Bonjour, je fais un tableau avec une PROC REPORT dans un fichier RTF. Je voudrais que mes titres de colonnes soient écrits verticalement et non horizontalement (il sont très longs). J’ai vu qu’on arrivait à ce résultat dans une sortie HTML en ajoutant style(header)={htmlstyle= »mso-rotate:90″} Mais ça ne marche pas sur une sortie RTF. Auriez-vous une idée sur la manière d’obtenir ce résultat ? Merci d’avance. Bonjour. Si vous voulez éviter d’avoir sur une ligne des titres trop longs, vous pouvez […]
Bonjour, j’ai réussi à générer un fichier Excel en SAS mais je n’arrive pas à le mettre en forme grâce à des feuilles de style. En effet je souhaiterai que les données de mon tableau Excel apparaissent centrées et non alignées à gauche comme le fait Excel par défaut. Si on génére un fichier HTML, les données arrivent parfaitement à être centrées. Or, sur Excel cela ne marche pas !!! Voici mon code : proc template; define style styles.noborder; parent=styles.minimal; […]
Bonjour, J’ai de nombreuses sorties sas que je souhaite produire dans des fichiers Excel. De la même manière que l’instruction « ods rtf » permet de générer des sorties lisibles par Word, existe-t-il un moyen de les rendre lisible par Excel ? Merci de votre réponse. Bonjour. Pour écrire des résultats SAS dans Excel, vous avez deux solutions : pour toutes versions de SAS depuis la 8.0, vous pouvez ouvrir une destination ODS HTML sur le même principe qu’ODS […]
Je cherche à exporter 78 variables d’une table SAS vers un fichier Excel à l’aide d’une liaison DDE. Les observations sont des nombres décimaux possédant 11 caractères dont 10 décimales (par exemple 0.6612903226). Le programme SAS (ci-dessous) lui indique bien d’exporter 78 variables sur un espace de 78 cellules. filename sortie DDE « excel|Feuil1!l1c2:l1c79 » notab; DATA _null_; SET pgm; FILE sortie; PUT COL1 ’09’x COL2 ’09’x COL3 ’09’x COL4 ’09’x COL5 ’09’x COL6 ’09’x COL7 ’09’x COL8 ’09’x COL9 ’09’x COL10 […]
Bonjour, Pouvez-vous me dire s’il existe une macro ou procédure qui exporte une table en fichier excel (97) directement? Merci d’avance pour votre précieuse réponse. Bonjour. Si vous possédez SAS version 8 ou 9, c’est très simple : ODS HTML FILE = « chemin et nom de votre fichier.xls » ; TITLE ; FOOTNOTE ; PROC PRINT DATA = votre_table LABEL NOOBS ; RUN ; ODS HTML CLOSE ; Vous obtiendrez ainsi une pseudo feuille Excel (en fait, c’est une page Web […]
J’essaye d’ouvrir dans Excel un tableau généré par SAS dans une page Web (ODS HTML). Les cases de mon tableau sont comprises par Excel comme des chaînes de caractères ! Comme corriger ce problème ? Par ailleurs, concernant l’envoi des tableaux HTML sous Excel, votre problème tient à un paramètre gênant : votre Excel est en Français, avec des virgules comme séparateur décimal. Or SAS, logiciel américain, utilise le point. Donc les points présents dans les cases des tableaux […]
J’essaye d’utiliser la fonction week dans mon programme, pour convertir une date en découpage hebdo.
Il semble que cette fonction ne soit pas reconnue. Je suis actuellement en SAS V8, est-ce que cette fonction n’est dispo qu’en V9 ?
Je vous remercie pour vos réponses.
je voudrais savoir comment les afficher via une proc freq sans format, c’est-à-dire en les visualisant sous la forme du nombre de jour depuis le 1er JAN 1960. L’objectif étant de récupérer les dates distinctes de ma table dans une liste, et de boucler dessus.
Par avance, merci.
J’ai une date de format $10. (style 10/10/2010) que je voudrais transformer en date DDMMYY10.
Merci d’avance de votre réponse.
j’ai une variable date dans un fichier, et je souhaite faire la répartition en fonction de tranche gérées par un format que je crée… et je n’arrive pas à créer ce format (sans passer par le calcul du nombre de jours correspondants à ma date..)
J’aurais souhaité afficher une date sous la forme suivante : Janvier 2005 (en français, mais sans le numéro du jour).
D’avance merci.
Comment positionner des lignes concernant le même identifiant les unes à la suite des autres ?
Dans une table SAS que j’ai récupérée, j’ai une variable qui contient manifestement une date, qui semble numérique sur une longueur de 8, mais elle a un aspect bizarre. Une valeur, par exemple, est : 14JUN1977:00:00:00. Les fonctions dates habituelles (YEAR, INTNX, etc.) me renvoient des résultats aberrants quand je les applique à cette variable. Que faire ?
J’ai enregistré l’ensemble des commandes de mon batch dans un fichier txt. Quelles sont ensuite les commandes de lancement?
D’avance merci
je travaille sur serveur et souhaiterais enregistrer mes tables sur le serveur sous un autre format que le format SAS (pour importation sous BO designer par la suite).
Merci d’avance.
Je souhaite allouer une librairie qui pointerait sur des données situées sur un serveur UNIX qui n’est pas celui sur lequel est installé le SAS que j’utilise.Cependant, si cela est utile, le logiciel SAS est installé sur les 2 serveurs. Y-a-t-il une (ou plusieurs ??) solutions ?
des variables qui étaient dans ma base de départ de type char deviennent de type num… j’ai voulu les modifier dans un noeud IDS mais ça ne fonctionne pas… Y a t-il un autre moyen?
Je travaille en client/serveur. Je crée en RSUBMIT des formats avec une PROC FORMAT. Je fais une option FMTSEARCH sur la librairie qui contient le catalogue de formats. Pour l’exécution de procédures, tout va bien. Mais quand je veux regarder ma table avec l’Explorer, SAS me dit qu’il ne trouve pas les formats. Que se passe-t-il ?
Bonjour, je suis en stage et je voudrais réaliser un arbre de décision sous SAS. Je voudrais connaître la forme du programme permettant de construire un arbre de décision sous SAS. Merci d’avance