logo

Versions de SAS

Version de SAS : Transformation SAS 6 <-> SAS 8

Un répertoire sur lequel pointe une librairie SAS ne peut contenir que des tables SAS d’un format identique (sas 6 – ssd01 ou sas 8 sasbd7). Existe-t-il un moyen de convertir une table SAS8 en SAS6 autre que de la recréer à partir de la version 6 du logiciel ?   Concernant la première affirmation sur les librairies, ce n’est pas tout à fait exact. Avec une astuce, il est possible de définir une librairie qui montre à la fois […]

SAS/BASE : suppression d’espaces

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.

SAS/BASE : espace et concaténation

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) […]

Régression : Prédiction à partir d’une proc LOGISTIC

Comment utiliser le modèle obtenu à l’aide d’une proc LOGISTIC dans le cadre d’une prévision ?   Le plus simple est d’ajouter aux données servant à construire le modèle celles que l’on souhaite prévoir ; pour ces dernières, on laisse la variable à prédire à valeur manquante. On met la table en entrée de la proc LOGISTIC, et toutes les observations ayant une valeur manquante ne sont pas utilisées pour le calcul des coefficients (donc on retrouve le modèle). En […]

ODS : Rendre les sorties générées par l’objet ODSOUT visibles dans l’Output

Bonjour, Je génère des tableaux via l’objet ODSOUT, afin de personnaliser mes sorties ODS. Malheureusement les tableaux générés par cet objet, ne sont pas visibles dans l’Output. Peut-on faire apparaître les tableaux ainsi créés dans l’Output? Merci   Malheureusement non. Il est obligatoire de fermer ODS LISTING pour que l’objet ODSOUT fonctionne sans erreur jusqu’à SAS 9.4. Même à partir de cette version, les sorties de l’objet ODSOUT ne seront pas visibles dans la fenêtre Output, même s’il n’y a […]

ODS : bug dans ODS OUTPUT avec la procédure FREQ

Bonjour, Je souhaite faire une sortie ods d’une proc freq. J’ai donc fait la manip « ods trace on … » pour avoir le nom de la sortie (crosstabfreqs) mais à l’éxecution du freq, le message suivant apparait dans la log : « ERREUR: La valeur Fréquence n’est pas un nom SAS valide. » Comment faire ? merci   Il s’agit d’un bug de la version 9.1 en français, qui a été corrigé par un hotfix d’ailleurs. Sans rien changer à votre installation de […]

Macro : faire un SET avec un nombre de tables variable

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 ;          […]

Importation : comment lire une table *.ssd01 dans SAS V9 ?

Bonjour, J’ai besoin de lire une table SAS *.ssd01 (donc a priori créée en V6 Unix !) dans SAS v9 windows … est-ce possible ? je me perds dans l’aide en ligne ! Merci d’avance !   Si vous avez une licence SAS 8 ou 9 pour l’Unix sur lequel la table a été créée, normalement vous n’avez qu’à… LIBNAME fichier6 V6 ‘/user/chemin/rep’ ; LIBNAME fichier8 ‘/user/chemin/rep’ ; PROC COPY IN = fichier6 OUT = fichier8 ; RUN ; Autre […]

Formats : Affichage des nombres avec un séparateur de milliers

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 […]

Exportation : Exporter 2 tables SAS vers un même fichier Excel

Bonjour, Je voudrais savoir s’il est possible d’exporter 2 tables sas toto1 et toto2 vers un même fichier Excel toto où toto1 serait le 1er onglet et toto2 le 2ème ??? Merci.   En SAS v9, pas de problème : il y a une instruction SHEET= dans la proc EXPORT pour indiquer dans quelle feuille du classeur Excel on veut écrire. Il suffit d’avoir une licence SAS ACCESS TO PC FILES et une session SAS PC. En SAS v8, c’est […]

Exportation : résultats SAS directement dans Excel

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 […]

Régression : Matrice confusion sur échantillon test

Bonjour, J’ai effectué une régression logistique sur une table d’apprentissage contenant des variables explicatives continues et discrètes(option class de la proc logistique). Je souhaite savoir comment procéder pour obtenir la matrice de confusion sur l’échantillon test. Cela suppose le calcul au préalable des probabilités estimées sur l’échantillon test étant donné que je des explicatives continues et discrètes. Merci   Bonjour. Il n’existe pas d’option dans la procédure LOGISTIC pour prendre en compte un échantillon test (c’est le cas dans la […]

Dates : fonction week non reconnue

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.

Arbre de décision : Programme SAS

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