logo

Reporting

ODS : colonnes de largueur uniforme dans une sortie RTF

Comment uniformiser la taille des colonnes d’une table utilisant ODS RTF et proc Report ? Pour ODS PDF il existe l’option UNIFORM. Existerait-il un équivalent pour ODS RTF ? Merci.   J’ai peur qu’une telle option ne soit pas prévue en RTF. Ce format avise en fonction du contenu des colonnes pour dimensionner son tableau, mais apprécie peu les contraintes à ce niveau. En revanche, en SAS 9.2, vous pouvez utiliser une option UNIFORM dans ODS TAGSETS.RTF, qui est une […]

ODS : n’afficher que certains quantiles dans la proc UNIVARIATE

je fais une PROC UNIVARIATE. Je m’intéresse au P90. Comment sortir spécifiquement ces stats ? (comme le nombre d’obs…)   Par « sortir », vous entendez « … dans une table » ou « n’afficher que… » ? Dans le premier cas, on peut utiliser l’ODS OUTPUT, dans le second, ODS SELECT. Dans les deux cas, on doit connaître le nom de l’objet ODS (le bout de sortie) que l’on veut manipuler. Pour le connaître, on peut exécuter la proc ainsi : ODS TRACE ON / […]

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 : procédure TABULATE sans affichage ?

Bonjour, J’utilise une proc tabulate pour créer une table de données [ proc tabulate data=work.table out=work.table1 ] sur laquelle j’effectue des calculs. j’obtiens également en sortie le tableau résultat qui ne m’est pas utile. Pouvez vous m’indiquer s’il existe un équivalent de l’option NOPRINT de la proc FREQ pour la proc TABULATE ? D’avance merci.   Bonjour. Vous pouvez encadrer votre procédure des instructions ODS EXCLUDE ALL ; et ODS SELECT ALL ; pour la rendre « muette ». ODS EXCLUDE ALL […]

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

SAS/STAT : Proc GENMOD ou LOGISTIC ?

Bonjour, durant mon stage j’ai beaucoup utilisé le modèle logistique. J’ai finalement choisi la proc GENMOD, plus claire. Mais peut on obtenir les odds-ratios sur celle-ci ? ou bien ne sont-ils présents que sur la proc LOGISTIC ?   Bonjour. Personnellement, ma préférence va à la proc Logistic, plus complète et spécialisée. En particulier, et pour répondre à votre question, elle est la seule à produire des odds-ratios. Mais elle édite également, par rapport à Genmod, des critères de qualité […]

ODS : Insérer un lien dans une PROC REPORT

Bonjour, Est-il possible d’attribuer un lien HTML à un en-tête de colonne dans la proc REPORT ? D’avance merci.   Bonjour. Le plus simple est d’utiliser l’attribut URL dans une option de style. Elle s’intègre à l’instruction DEFINE de votre variable. DEFINE … / … STYLE(HEADER)=[URL="adresse"] ;

ODS : Récupérer les odds ratio dans une table

Bonjour, J’utilise la proc logistic pour calculer des odds ratio ajustés. Comment faire pour récupérer ces odds-ratio et leurs intervalles de confiance dans une table ? Merci. Bonjour. Il vous suffit de faire précéder votre PROC LOGISTIC de l’instruction suivante : ODS OUTPUT OddsRatios = nomTableSAS ; Pour fonctionner, il faut que cette instruction soit entre les instructions PROC LOGISTIC et RUN.

ODS : l’option NOPRINT ne marche pas avec la proc TTEST

Bonjour, Quelle option (ou démarche) utiliser pour éviter des sorties html de sas avec la proc ttest? Étant donné que je travaille sur un grand nombre de variables, je ne veux récupérer que les satistiques dans des tables sas avec l’option « ods output equality= statistics= ttests= « . En lançant cette procédure sur 240 variables et 59 300 individus, sas me renvoie un message selon lequel mes résultats sont trop volumineux au point de nécessiter beaucoup de ressources système. Le problème […]

ODS : récupérer une p-value d’un test de Fisher

Dans la procédure REG, comment récupérer la pvalue du modèle dans une table ?   ODS OUTPUT ANOVA = work.maTable ; PROC REG DATA = … ;    … RUN ; QUIT ;

ODS : récupérer les coefficients d’un modèle

Bonjour, Suite à un problème de modélisation via la procédure PROC LOGISTIC, j’aimerais récupérer les coefficients estimés du modèle dans une table SAS afin de pouvoir utiliser ensuite, la procédure SCORE et ainsi attribuer des scores à d’autres individus. Quel est l’option qui permet cette manipulation ? Merci d’avance de votre aide. Faites précéder votre proc LOGISTIC par l’instruction suivante : ODS OUTPUT parameterEstimates = work.coeffs ; et vous retrouverez dans la table COEFFS de la bibliothèque WORK vos coefficients. […]

ODS : Nom des sorties d’une procédure

Bonjour. J’aimerais récupérer dans une table SAS les sorties d’une procédure, au moyen de l’instruction ODS OUTPUT. Mais cette syntaxe me demande le nom de « l’objet » produit par la procédure : comment le connaître ? D’avance merci.   Pour connaître le nom des objets transmis à l’ODS par une procédure, il faut encadrer le programme par des instructions ODS TRACE. ODS TRACE ON ; PROC xxx … ; … RUN ; ODS TRACE OFF ; Dans la fenêtre LOG, chaque […]

ODS : Changer le titre d’une page HTML

Avec ODS HTML, j’obtiens toujours une page Web dont le titre (affiché dans le bandeau d’Internet Explorer) est SAS Output. L’instruction TITLE ne permet pas de rectifier cela. Comment faire ?   L’instruction TITLE ne concerne en effet que le corps de la page. Pour changer le titre de la page Web, il faut écrire après le nom de la page Web créée (dans l’instruction ODS HTML) la syntaxe (TITLE = « … »). Par exemple : ods html body='c:\essai.htm' (title="~~~~~~ Tableau […]

ODS : « museler » la visualisation des pages Web

Je produis des pages Web avec ODS HTML. SAS me les affiche automatiquement. Comment débrayer cette fonctionnalité, et si possible par programme ?   De manière interactive, on peut désactiver cette possibilité avec TOOLS>OPTIONS>PREFERENCES, onglet RESULTS, décocher la case VIEW RESULTS AS THEY ARE GENERATED. Par programme, la solution est plus complexe : il faut modifier le SAS Registry, qui recense tous les réglages de la session. Pour cela, on va créer la ligne nécessaire dans un fichier externe, et […]

ODS : Couleurs RGB dans la Proc Tabulate

Bonjour. Je voudrais savoir comment utiliser les codes couleurs RGB (par exemple 0000FF) dans une procédure Tabulate pour créer un tableau coloré via l’ODS.   On peut utiliser une large palette de couleurs, y compris les RGB et les nuances de gris, à condition de respecter la syntaxe de SAS/GRAPH pour définir les couleurs, à savoir : on fait précéder de CX les codes RGB sans signe dièse on peut aussi utiliser des nuances de gris, de GRAY00 à GRAYFF […]

ODS : Mise en forme ODS

Est-il indispensable d’utiliser une procédure TEMPLATE pour changer la mise en forme des sorties de l’ODS HTML ?   Non, on peut utiliser une feuille de style pour obtenir ce résultat… ODS HTML BODY = …     STYLESHEET = "mon_fic.css" ; Ce fichier .css, qu’on appelle une feuille de style, permet de définir nombre de polices, couleurs, etc… Il peut se mettre en commun à plusieurs pages Web (d’où un gain de place). On peut aussi utiliser un des nombreux styles […]

ODS : L’ODS RTF ne fonctionne pas !

J’ai des messages d’erreur quand j’essaye de faire fonctionner un programme avec ODS RTF qui fonctionne chez mon collègue !   Sans présager des messages qui peuvent se trouver dans la Log, il y a avec la version 8.2 et certaines versions de Windows une incompatibilité d’humeur qui transpire sur l’ODS. La solution est d’aller dans le fichier de configuration (Sasv8.cfg) et d’éliminer les lignes qui contiennent le mot « DBCS » (dans l’exemple ci-dessous, supprimer UNIQUEMENT les lignes en gras) : […]

ODS : Vider la fenêtre Results

Bonjour. Je voudrais connaître la commande pour purger la fenêtre Results de SAS PC dans un programme. Merci.   Dans un programme SAS, la commande est : DM "odsresults ; clear" ;

ODS : Récupérer le risque relatif

Bonjour, j’ai créé un fichier ODS PDF qui est une suite de tableaux réalisé avec des proc tabulate comme ceci : <strong>proc tabulate data=data.tab3 missing ;</strong> <strong> class cat ;</strong> <strong> class sonf;</strong> <strong> tables sonf all='Total',cat*(n*f=10.0 pctn='%'*f=10.1)</strong> <strong> all='Total'*(n*f=10.0 pctn='%'*f=10.1) ;</strong> <strong>run ;</strong> où chaque variable (comme ici « sonf ») est traitée en fonction de la variable « cat ». Je voudrais à chaque fois récupérer le risque relatif (proc freq option cmh) et sous chaque tableau écrire : « Le risque relatif […]

ODS : PDF et sauts de pages

Bonjour, je voulais savoir comment on peut avoir des tableaux et des graphiques sur la même feuille de sortie dans le format PDF. Merci d’avance.   Bonjour. Il suffit d’ajouter à votre instruction ODS PDF ouvrante l’option suivante : STARTPAGE = NO Les sorties de vos procédures (graphiques ou tableaux) se trouveront à la suite les unes des autres, sans sauts de pages.

Graphiques : Titre du graphique dans la table des matières

Est -il possible lors d’une sortie HTML de changer dans le sommaire le nom du lien par défaut qui envoie sur un graphique ? Pour un histogramme le « contents » par défaut est « HBAR chart of nom variable de groupe« . Oui, en utilisant l’option DES = « texte » dans les instructions HBAR, VBAR, HBAR3D, VBAR3D et PIE / PIE3D. PROC GCHART DATA = sashelp.class ;    VBAR sex / SUMVAR = age TYPE = MEAN DES = "Moyenne d'âge par sexe" ; RUN […]

ODS : Procédure Tabulate, éliminations de lignes et colonnes inutiles ?

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

Formats : Remplacer les points par les virgules

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.

Formats : format français

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

Formats : format pour comparer un groupe à l’ensemble de la population

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: <strong>   proc format;</strong> <strong>       value pop (multilabel) low-35="35 ans et moins"</strong> <strong>       low-high/* ?? */="tout le monde";</strong> <strong>   run;</strong> mais si j’applique ce format dans une proc freq par exemple: <strong>   proc freq data=****;</strong> <strong>       table age;</strong> <strong>       format age pop.;</strong> <strong> […]

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 : Insertion lignes dans Excel

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

ODS : Titres très longs dans ODS RTF

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

Exportation : centrer les données d’un tableau Excel en SAS

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 : <strong>proc template; </strong> <strong>   define style […]

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

Exportation : export sous Excel

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

Exportation : Largeur de page HTML

Je produis avec ODS HTML des pages Web que je désire ensuite pouvoir imprimer. Mais les tableaux produits sont trop larges, et l’ODS HTML ne tient pas compte de l’option LINESIZE (LS) pour dimensionner les tableaux… Que faire ?   Malheureusement, le HTML est un langage sourd aux considérations bassement matérielles d’impression. Je ne connais aucun moyen, depuis SAS, pour le forcer à respecter des largeurs de pages données, puisque dans un navigateur Internet, on a toujours la possibilité d’un […]

Exportation : Sorties SAS dans Excel

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