Archive for the ‘SAS 9.2’ Category

h1

SAS 9.2. : WARNING avec PROC SQL et l’option UNDO_POLICY=NONE

janvier 6, 2013

Depuis SAS 9.2, un nouveau WARNING apparaît dans la log quand le nom de la table SAS d’entrée est le même que le nom de la table SAS de sortie. Pour éviter ce message, l’option undo_policy=none est à ajouter dans l’instruction proc sql;. SAS support prévient néanmoins que l’usage du même nom en entrée et en sortie présente un risque et que l’option enlève l’avertissement mais pas le risque.

1. Le message dans la log

WARNING: CREATE TABLE statement recursively references the target table

 

2. Exemple

Ce code générerait le warning avec SAS 9.2 si l’option undo_policy=none n’était pas utilisée.

proc copy in=sashelp out=work;
   select class;
run;

proc sql undo_policy=none;
   create table class as 
   select name, age
   from class;
quit;

 

En savoir plus

h1

SAS 9.2 Souligner ou barrer un texte dans une table en sortie ODS

juillet 14, 2011

Avec SAS 9.2 il est maintenant possible de souligner/barrer des valeurs d’une table dans une sortie ODS et plus seulement dans le titre.

L’exemple est basé sur une sortie .pdf. TEXTDECORATION=UNDERLINE souligne les valeurs. TEXTDECORATION=LINE-THROUGH barre les valeurs et TEXTDECORATION=OVERLINE (usage très rare a priori) ajoute une ligne au dessus du texte.

ods listing close;
ods pdf file=‘c:/sasref’;
proc print data=sashelp.class;
var name / display style(column)=[textdecoration=underline];
var sex / display style(column)=[textdecoration=line-through];
var age / display style(column)=[textdecoration=overline];
run;
ods pdf close;
ods listing;

Lecture complémentaire

SUGI, pour visualiser le résultat : http://www2.sas.com/proceedings/sugi31/227-31.pdf

h1

SAS 9.2 et PROC SORT : Quel est l’effet de l’option – sortseq=ascii (numeric_collation=on) ?

avril 10, 2011

Recherchez l’effet de l’option SAS 9.2 de la procédure PROC SORT : sortseq=ascii (numeric_collation=on),  une option qui manquait vraiment pour le tri de variables alphanumérique.

Pour cela, il vous suffit d’exécuter l’exemple suivant.

data one;
length x $10;
input x $;
datalines;
1
10
A
a
b
B
20
2
;
run;

proc sort data=one
out=nooption;
by x;
run;

proc sort data=one
out=withoption
sortseq=ascii (numeric_collation=on);
by x;
run;

title ‘No option’;
proc print data=nooption;
run;

title ‘With option’;
proc print data=withoption;
run;

Lecture Complémentaire

  • Trier les données par ordre croissant et décroissant
  • Tout sur l’instruction BY
  • SAS Online Doc 9.2: The PROC SORT Procedure