|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mars 2011 Messages : 41 ![]() |
Bonjour,
Tout ou presque est dans le titre... je viens d'importer via les procédures import et transpose 200 questionnaires réalisés sous excel 2003. Or, toutes les variables sont en caractère (85% d'entre elles étaient pourtant en numérique sous excel!). Ainsi afin de pouvoir utiliser la procédure MEANS, je dois convertir environ 300 variables caractère en numérique. Avez-vous une solution? Je vous remercie. Cordialement, ratm13. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mars 2011 Messages : 41 ![]() |
Je débute en SAS.
Cette personne désirait convertir des variables numérique en caractère, moi c'est l'inverse. Que dois-je modifier dans ces programmes? Et merci pour ta réponse SAM |
|
|
00
|
|
|
#4 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
OK !!
deux petites choses CHAR au lieu de NUM et INPUT au lieu de PUT ( /*ICI*/) Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : mars 2011 Messages : 41 ![]() |
Merci SAM. Alors après avoir fait tourner le programme, toutes les variables ont été convertis en numérique. Le problème c'est que mes 15% de variables caractère (que je veux laisser en caractère) ont été remplacées par un "." .
Je suppose que l'ont peut intégrer dans le programme la condition "si la variable est en lettre alors la laissé en caractère". (ex: le nom, l'adresse mail...). Est-ce possible? |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : mars 2011 Messages : 41 ![]() |
J'ai parcouru pas mal le forum. Le souci vient du fait que lors de mon import SAS a importé toutes mes variables en caractère à partir d'excel. Cette procédure dispose t-elle d'une option permettant de faire la différence?
L'option mixed est pourtant sur YES. |
|
|
00
|
|
|
#7 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
La proc import génère une étape data + infile dans la log,
Tu copie collé dans ton programme. Comme sa tu n as pas a taper toutes tes variables à la main. Tu peux aussi rajouter des conditions dans le programme précédent pour vérifier s il existe des caractère hors ('0'-'9', '.') pour répéter les variables non numérique et les exclure de la transformation char à num. |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Tu peux aussi jouer sur l'option GUESSINGROWS dans la proc IMPORT : c'est le nombre de lignes sur lesquelles SAS se base pour déterminer si une colonne est de type numérique ou caractère. Avec MIXED=YES, dans le doute il crée du texte. Donc il est important de lever au maximum les doutes, avec GUESSINGROWS=1000 par exemple.
Bon courage. Olivier |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : mars 2011 Messages : 41 ![]() |
bonjour,
L'option GUESSINGROWS=1000 ne fonctionne pas sur ma version apparemment et même en remplaçant EXCEL REPLACE par XLS REPLACE, rien n'y fait. Sam, bien que ta réponse soit précise, je ne comprends pas les éléments à modifier. Je ne vois pas comment rajouter des conditions dans mon programme... désolé ne maîtrise pas du tout les macros. Aussi je ne vois pas ou copier les éléments du infile. Merci pour vos réponses. |
|
|
00
|
|
|
#10 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
Citation:
Citation:
pour dire qu'une variable n'est pas numerique ( celle que tu veux exclure de l'input ) il suffit que cette variable contient un CARACTèRE hors la liste précédente. Quand tu execute une proc import ; sas génére une étape DATA dans la log tu peux la copier et modifier les informats ( à la main) . |
||
|
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() Inscription : mars 2011 Messages : 41 ![]() |
ma version de SAS est la 9.1.
Sam, j'ai compris pour le infile, mais après je ne vois pas comment modifier pour chaque le format. Je dois réaliser un programme de ce genre? Code :
Sinon pour la macro je comprend ce que tu veux dire mais je n'arrive pas à l'exprimer en langage SAS... !! Merci pour ta patience..
|
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 957 ![]() |
Bonjour,
Il faudrait appliquer la macro que sur des variables caractères (ie seulement que les 300). Pour cela, il faut passer : 1° par une proc contents, 2° sélectionner des variables caractères (type=2), 3° appliquer la macro, 4° fusionner avec l'autre partie de la table qui ne contient que des variables numériques. Bon courage! |
|
|
01
|
|
|
#13 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
Pas aussi simple que sa Brice car si j'ai bien compris , ratm13 cherche à determiner quelles sont les variables à ne pas convertir.
@ratm13 tu peux joindre ta log après la execution de la proc import? ou connais tu l'ordre des variables à ne pas convertir en numérique? genre de la 6 éme à la 27 éme ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com