Vous n'êtes pas identifié.
Vous êtes sur le forum du master ESA !
Le site du master ESA - description de la formation, notes de cours, contacts... vient de déménager !!!
Venez visiter notre nouveau site : www.master-esa.fr
SVP quelqu'un sait-il quelle est la procédure pour convertir un tableau excel comprenant 300 observations et environ autant de variables en table sas? J'ai enregistré mon fichier excel en .csv avant de faire une proc import dans sas mais résultat non concluant avec points virgules partout. Merci de votre aide.
Hors ligne
Peux-tu poster ton programme SAS ( proc import ) avec la log éventuellement ?
Hors ligne
De grâce, aidez mon ex-collègue, super sympa. Je lui ai dit que c'était dans ce master que l'on trouvait les champions de SAS....
Hors ligne
peuh ! trop facile comme question....
je vous propose une réponse sport !
j'ai crée sur mon pc un fichier excel organisé comme suit :
- sur la première ligne, le nom de la variable
- et ensuite, les observations
ensuite :
libname test excel 'C:\Users\Sébastien\Documents\aimporter.xls'; proc contents data=test._all_; run; data toto; set TEST.'Feuil1$'n; run;
le PROC CONTENTS a pour objectif de voir le nom de la première feuille excel (là ou sont mes données) : le nom est donc 'Feuil1$'n
et dans la table toto, j'ai exactement la copie (en table SAS) de mon fichier Excel !
(tout ceci est expliqué dans une note de bas de page (la n°3), page 25 d'un excellent ouvrage sur SAS que je recommande personnellement.....)
a+
SR
Hors ligne
Madagascar, je t'avais bien dit que c'était un master de champions du monde !!!
Hors ligne
Merci esa_sr j'y ai cru mais toujours pas concluant. Message d'erreur après le libname : Le moteur EXCEL est introuvable.
ERREUR: Erreur dans l'instruction LIBNAME.
170 run;
Hors ligne
Merci de votre réponse. J'ai la version 9.1.
Hors ligne
Il y a bien d'autres manieres sans taper de code vous pouvez exporter votre table excel directement en allant dans le menu fichier------> puis vs avez le menu exporter et importer qui vous permet de creer une table sas à partir d'une table excel et vice versa transformer une table sas en excel....
c'est une solution si vous voulez par taper des codes sas
Hors ligne
c'est étrange cette absence du moteur excel... il faut que je vérifie la version qui, la première, a bénéficié de ce moteur.
bon en attendant, le module d'importation (fichier / importer) doit gérer le fichier excel sans problème.
sinon, à partir d'un CVS (mais il faut déjà retirer le nom des variables de la première ligne et retirer la première ligne), ça ne pose pas de réel problème :
data toto; infile 'C:\Users\Sébastien\Documents\aimporter.csv' dlm=';'; input (x1 x2 x3) (:numx.) ; run;
le DLM indique que le séparateur de modalité est le ;
ensuite, dans excel, le séparateur décimal est la virgule et SAS n'aime pas ça (puisque le séparateur décimal par défaut pour SAS, c'est le point).
Pour demander l'interprétation de la virgule comme une séparateur décimal, il faut le spécifier au moyen d'un INFORMAT numx.
par contre, si le fichier excel contient des variables alphanumériques, les choses peuvent devenir plus longues à écrire..
a+
SR
Hors ligne
Si si je confirme ! le moteur EXCEL ne figure pas sur certaines versions (La mienne par exemple depuis on m'a installer l'access to ODBC), par contre les export vers excel avec l'ods markeup fonctionnent !
Sinon essayez ceci :
PROC IMPORT
datafile= 'C:\Users\Sébastien\Documents\aimporter.csv'
out=mylib.data
dbms=csv
replace;
delimiter=','; /*ou delimiter=';';*/
getnames=yes ;
run;
Hors ligne
Merci pour tous vos conseils. esa_ch a raison: vous êtes des champions de sas et je saurais désormais vers qui me tourner en cas de problèmes!
Hors ligne
Bonjour à tous,
J'ai essayé le code de esa_sr déjà cité ci-dessus:
data toto;
infile 'C:\Users\Sébastien\Documents\aimporter.csv' dlm=';';
input (x1 x2 x3) (:numx.) ;
run;
Cela fonctionne mais un bon nombre de valeurs numériques et caractères que j'ai dans Excel sont remplacés par des points une fois arrivés dans SAS. Pouvez-vous m'aider SVP
Je suis un ami de madagascar
Hors ligne
Rectification: j'ai utilisé celui-ci
libname test excel 'C:\Users\Sébastien\Documents\aimporter.xls';
proc contents data=test._all_;
run;
data toto;
set TEST.'Feuil1$'n;
run;
Hors ligne
à coup sûr, vous avez des colonnes qui contiennent des données mixtes : des chiffres et des chaines de caractères...
solutions possibles :
soit vous travaillez votre excel pour avoir des colonnes uniformes (uniquement des chiffres ou uniquement des caractères)
soit vous utilisez l'option MIXED=yes de l'instruction globale LIBNAME (à placer avec le chemin DOS vers votre fichier excel)
Hors ligne
Bonsoir,
Merci pour votre réponse. J'ai essayé les deux solutions. MIXED=yes n'a pas fonctionné. Par contre j'ai uniformisé les cellules de Excel (clic droit> format de cellule> standard) et j'ai bien toutes mes données une fois arrivé dans SAS (ouf!).
Bien à vous!
Hors ligne