Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/10/2011, 15h15   #1
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
Par défaut Problème de formats sur une base importée

Bonjour ,

j'ai importer un fichier text dans sas, code:

Code :
1
2
3
4
5
6
7
8
 
PROC IMPORT OUT= essai11
DATAFILE= 'S:\AM\04. Projet\2011-06_ktp\0. perso\Texte\Essai2011.txt'
DBMS=TAB REPLACE;
GETNAMES=YES;
DATAROW=2;
GUESSINGROWS=125048;
RUN;

Seulement voilà, lorsque je lance toute procédure calcul comme par exmple "proc corr" , j'ai le message d'erreur suivant:

Code :
1
2
ERROR: Variable DRAC_ECH IN list does NOT match type prescribed FOR this list.
ERROR: Variable VAR38 IN list does NOT match type prescribed FOR this list.
Merci d'avance pour votre aide.
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 15h51   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 011
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 011
Points : 1 712
Points : 1 712
sa depend de ce que t'as mis dans ta proc corr;
tu peux poster ton code?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 16h24   #3
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
tes variables sont caractères alors qu'il attend des numériques.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 18h13   #4
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
Salut,

Ces variables sont belles et bien des nombres, le problème vient peut-être du fait que la majorité des cellules de variables que j' utilise pour ma proc corr sont vides et que compilateur aurait du mal a confondre le format nombre avec celui des cellules vides, c'est ce que je suspecte et j'aimerai si mon hypothèse est juste corrigé cela.
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 20h27   #5
Membre éprouvé
 
Homme Rémi Bousquet
responsable adjoint service stat
Inscription : mars 2009
Messages : 334
Détails du profil
Informations personnelles :
Nom : Homme Rémi Bousquet
Âge : 35
Localisation : France

Informations professionnelles :
Activité : responsable adjoint service stat
Secteur : Finance

Informations forums :
Inscription : mars 2009
Messages : 334
Points : 464
Points : 464
Je confirme, le problème vient du type de tes variables, caractère au lieu de numérique.
Démonstration par l'exemple.
1/ Table test : 3 var numérique (dont une manquante), 3 var caractère (dont une manquante)
Code :
1
2
3
4
5
6
7
8
9
10
11
DATA test ;   
    do loop = 1 TO 10 ;
    var_n_1    = ranuni(0) ; 
    var_n_2    = ranuni(0) ;        
    var_n_miss = . ; 
    var_c_1    = put(var_n_1,8.6) ;
    var_c_2    = put(var_n_2,8.6) ;
    var_c_miss = "" ;
    output ;
    end ;
run ;
2/ Proc corr sur les 3 var numériques
Code :
1
2
3
proc corr DATA = test ; 
    var var_n_:;
run ;
--> Pas d'erreur, malgré var_n_miss toujours manquant

3/ Proc corr sur les 3 var caractère
Code :
1
2
3
proc corr DATA = test ; 
    var var_c_:;
run ;
--> Erreur identique sur les 3 var caractères :
ERROR: Variable var_c_1 in list does not match type prescribed for this list.
ERROR: Variable var_c_2 in list does not match type prescribed for this list.
ERROR: Variable var_c_miss in list does not match type prescribed for this list.


Solution : Même si tes variables contiennent des chiffres, ce sont des var caractères que SAS ne peut donc exploiter pour des calculs
--> Il te faut les "transformer" en var numériques
Par exemple :
Code :
1
2
3
4
5
DATA work.essai11 ;
    SET work.essai11 ;
    drac_ech_num = input(drac_ech, 8.);
    var38_num = input(var38, 8.);
run ;
RemiBousquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 22h25   #6
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
peux-tu faire une proc CONTENTS de ta table pour que l'on s'assure de cette hypothèse (forte) ?
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 11h29   #7
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
Bonjour,

Vous avez raison c'est bien un problème de format voici ce que donne la proc content:



29 Age_ECH Texte 10 $10. $10.
30 Age_RA Texte 13 $13. $13.
11 CRDnmoins1 Texte 16 $16. $16.
6 Cdpersonne Num. 8 BEST12. BEST32.
39 CheckCRDnmoins1 Texte 17 $17. $17.
32 DRAC_ECH Texte 12 $12. $12.
33 DRAC_RA Texte 14 $14. $14.
21 Date_Echeance Num. 8 DDMMYY10. DDMMYY10.
22 Date_Echeance2 Num. 8 DDMMYY10. DDMMYY10.
31 Datematurinit Num. 8 DDMMYY10. DDMMYY10.
12 Dtcloture Num. 8 DDMMYY10. DDMMYY10.
7 Dtcreation Num. 8 DDMMYY10. DDMMYY10.
3 Dtvalorisation Num. 8 DDMMYY10. DDMMYY10.
16 Duree_Credit_Accorde Num. 8 BEST12. BEST32.
28 Ecart Num. 8 BEST12. BEST32.
1 Idcontratcredep Num. 8 BEST12. BEST32.
2 Idcredit Num. 8 COMMA12. COMMA32.
13 Indicateur_Reserve Texte 1 $1. $1.
17 Libelle Texte 47 $47. $47.
41 Matricule Texte 23 $23. $23.
25 Mnt_Amortissement Texte 11 $11. $11.
26 Mnt_Amortissement2 Texte 16 $16. $16.
15 Mode_Remboursement Texte 1 $1. $1.
35 Montant_RA Texte 16 $16. $16.
10 Mtcapitalrestantdu Texte 16 $16. $16.
37 Mtcapitalrestantdu2 Texte 16 $16. $16.
8 Mtcredit Texte 15 $15. $15.
19 Num_Echeance Num. 8 BEST12. BEST32.
20 Num_Echeance2 Num. 8 BEST12. BEST32.
5 Numeroplanencours Num. 8 BEST12. BEST32.
4 Numeropret Num. 8 BEST12. BEST32.
18 Periode Num. 8 BEST12. BEST32.
36 Periode_1 Num. 8 BEST12. BEST32.
40 Poucent_RA Texte 14 $14. $14.
34 Test_RA Texte 54 $54. $54.14 Type_Taux_Sab Texte 1 $1. $1.
38 VAR38 Texte 16 $16. $16.
42 drac_ech_num Num. 8
43 var38_num Num. 8



et en créeant "drac_ech_num" et "var38_num" comme me l'a suggeré Remibousquet, j'ai bien des num et la proc corr marche, mon nouveau problème est savoir comment tout transformer en format normal Merci, par exemple pour les dates qui sont en format text


Merci
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 11h36   #8
Membre éprouvé
 
Homme Rémi Bousquet
responsable adjoint service stat
Inscription : mars 2009
Messages : 334
Détails du profil
Informations personnelles :
Nom : Homme Rémi Bousquet
Âge : 35
Localisation : France

Informations professionnelles :
Activité : responsable adjoint service stat
Secteur : Finance

Informations forums :
Inscription : mars 2009
Messages : 334
Points : 464
Points : 464
Je te suggère de clôturer ce thread et d'en ouvrir un nouveau dédié à ton nouveau problème ;-)
RemiBousquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 12h20   #9
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
ok
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h09.


 
 
 
 
Partenaires

Hébergement Web