IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Problème de Type de données Numériques converties en Factor par défaut.


Sujet :

R

  1. #1
    Membre averti Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Points : 356
    Points
    356
    Par défaut Problème de Type de données Numériques converties en Factor par défaut.
    Bonjour à tous,
    Je me lance sur R depuis peu, et il est bien normal que je precute en ces permiers temps, alors si quelqu'un pouvait aider, ce serait trés aimable.
    Voilà je travaille sur 12 Fichiers CSV situés dans le dossier de travail(Working Directory), et j'essaie de combiner le contenu de tous les fichiers dans la variable dataframe appelée "COMBIN" à l'aide du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    FRUB01 <- read.csv("FRUB201401.csv",header=TRUE)
    FRUB02  <- read.csv("FRUB201402.csv",header=TRUE)
    FRUB03 <- read.csv("FRUB201403.csv",header=TRUE)
    FRUB04 <- read.csv("FRUB201404.csv",header=TRUE)
    FRUB05  <- read.csv("FRUB201405.csv",header=TRUE)
    FRUB06 <- read.csv("FRUB201406.csv",header=TRUE)
    FRUB07 <- read.csv("FRUB201407.csv",header=TRUE)
    FRUB08  <- read.csv("FRUB201408.csv",header=TRUE)
    FRUB09 <- read.csv("FRUB201409.csv",header=TRUE)
    FRUB10 <- read.csv("FRUB201410.csv",header=TRUE)
    FRUB11  <- read.csv("FRUB201411.csv",header=TRUE)
    FRUB12 <- read.csv("FRUB201412.csv",header=TRUE)
    COMBIN = as.data.frame(rbind(FRUB01,FRUB02,FRUB03,FRUB04,FRUB05,FRUB06,FRUB07,FRUB08,FRUB09,FRUB10,FRUB11,FRUB12),stringsAsFactors =F)
    le tableau se crée bien mais la colonne "Amount" qui est supposée être une valeur numérique est considéré comme Factor, du coup à partir du 2eme Fichier CSV ladite colonne affiche NA.
    Quelqu'un aurait une idée SVP?
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    La première idée qui me vient serait d'utiliser le paramètre "colClasses" de la fonction "read.csv" pour forcer le type des variables qui vous posent problème.

    Sinon, pouvez-vous poster un cours extrait des deux premiers jeux de données et du type de leurs variables ?
    Vous pouvez par exemple faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    head(FRUB01)
    str(FRUB01)
     
    head(FRUB02)
    str(FRUB02)

    Cordialement,


    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    Membre averti Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Points : 356
    Points
    356
    Par défaut
    Merci A.D d'avoir pris le soin de répondre à ma question.
    J'ai trouvé bon de changer les intitulés dans chaque fichier mais rien de mieux ne s'est produit je vous joint le jeu de données qui ressort de la fonction de structure STR.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    > head(FRUB01)
      DATE_EXPL    MAT      NOM_PRENOM DIREC CPT_ANA ECHELLE ECHELON COD_FONCT   N_RIP_RIB CAISSE
    1   01/2014 00879U CAROLE EVRA  Q71T  2F5016      25       6 24020YK73 7.99999e+17      3
    2   01/2014 00879U CAROLE EVRA  Q71T  2F5016      25       6 24020YK73 7.99999e+17      3
    3   01/2014 00879U CAROLE EVRA  Q71T  2F5016      25       6 24020YK73 7.99999e+17      3
    4   01/2014 00879U CAROLE EVRA  Q71T  2F5016      25       6 24020YK73 7.99999e+17      3
    5   01/2014 00879U CAROLE EVRA  Q71T  2F5016      25       6 24020YK73 7.99999e+17      3
    6   01/2014 00879U CAROLE EVRA  Q71T  2F5016      25       6 24020YK73 7.99999e+17      3
           NUM_SS NUM_ADHER DATE_NAISS MOIS_EFFET ANN_EFFET CODE_PAIE NO_RUB               LIB_RUB
    1 5.90041e+11    565789   21021959          1      2014         1    100       SALAIRE DE BASE
    2 5.90041e+11    565789   21021959          1      2014         1    176 IND.ANCIENNETE GROUPE
    3 5.90041e+11    565789   21021959          1      2014         1    200        SALAIRE UNIQUE
    4 5.90041e+11    565789   21021959          1      2014         1    289            I Z C V  G
    5 5.90041e+11    565789   21021959          1      2014         1    300     ASSURANCE SOCIALE
    6 5.90041e+11    565789   21021959          1      2014         1    302              RETRAITE
      CODE_NATUR DT_DEB DE_FIN     MT_MOIS MT_RAPPEL   TAUX   ELEM_STAT
    1          1     NA     NA 191,317.42      0.00    0.00       0.00 
    2          1     NA     NA  33,592.65      0.00    0.00       0.00 
    3          1     NA     NA   1,500.00      0.00    0.00       0.00 
    4          1     NA     NA  61,850.79      0.00  290.77      27.00 
    5          1     NA     NA   3,373.65      0.00    1.50 224,910.07 
    6          1     NA     NA  15,181.42      0.00    6.75 224,910.07 
    > str(FRUB01)
    'data.frame':	114933 obs. of  25 variables:
     $ DATE_EXPL : Factor w/ 1 level "01/2014": 1 1 1 1 1 1 1 1 1 1 ...
     $ MAT       : Factor w/ 5588 levels "00327A","00608U",..: 17 17 17 17 17 17 17 17 17 17 ...
     $ NOM_PRENOM: Factor w/ 5565 levels "GARRY DUPONT",..: 5225 5225 5225 5225 5225 5225 5225 5225 5225 5225 ...
     $ DIREC     : Factor w/ 83 levels "Q71","Q711","Q712",..: 11 11 11 11 11 11 11 11 11 11 ...
     $ CPT_ANA   : Factor w/ 22 levels "2B5010","2D5015",..: 6 6 6 6 6 6 6 6 6 6 ...
     $ ECHELLE   : Factor w/ 30 levels "00","11","12",..: 16 16 16 16 16 16 16 16 16 16 ...
     $ ECHELON   : int  6 6 6 6 6 6 6 6 6 6 ...
     $ COD_FONCT : Factor w/ 958 levels "01010109","01010111",..: 804 804 804 804 804 804 804 804 804 804 ...
     $ N_RIP_RIB : num  8e+17 8e+17 8e+17 8e+17 8e+17 ...
     $ CAISSE    : int  3 3 3 3 3 3 3 3 3 3 ...
     $ NUM_SS    : num  5.9e+11 5.9e+11 5.9e+11 5.9e+11 5.9e+11 ...
     $ NUM_ADHER : int  565789 565789 565789 565789 565789 565789 565789 565789 565789 565789 ...
     $ DATE_NAISS: Factor w/ 4270 levels "01011955","01011956",..: 2888 2888 2888 2888 2888 2888 2888 2888 2888 2888 ...
     $ MOIS_EFFET: int  1 1 1 1 1 1 1 1 1 1 ...
     $ ANN_EFFET : int  2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 ...
     $ CODE_PAIE : int  1 1 1 1 1 1 1 1 1 1 ...
     $ NO_RUB    : Factor w/ 87 levels "100","102","104",..: 1 24 26 41 54 55 56 57 61 68 ...
     $ LIB_RUB   : Factor w/ 89 levels "ACC. TRAV. EMPLOYEUR",..: 88 27 89 18 5 82 83 69 42 9 ...
     $ CODE_NATUR: int  1 1 1 1 1 1 1 1 1 1 ...
     $ DT_DEB    : int  NA NA NA NA NA NA NA NA NA NA ...
     $ DE_FIN    : int  NA NA NA NA NA NA NA NA NA NA ...
     $ MT_MOIS   : Factor w/ 61497 levels "-113,635.15 ",..: 24374 36690 7111 48231 34691 20137 45145 1760 39337 26027 ...
     $ MT_RAPPEL : Factor w/ 971 levels "-1,005.86 ","-1,274.00 ",..: 72 72 72 72 72 72 72 72 72 72 ...
     $ TAUX      : num  0 0 0 290.8 1.5 ...
     $ ELEM_STAT : Factor w/ 10552 levels "0.00 ","0.90 ",..: 1 1 1 4868 4704 4704 4704 4704 4704 4704 ...
    > 
    > head(FRUB02)
      DATE_EXPL    MAT        NOM_PRENOM DIREC CPT_ANA ECHELLE ECHELON COD_FONCT            N_RIP_RIB
    1   02/2014 01390H MICHELLE SAVIER   QA1  2G5001      22       0  13020111 00799999000769168496
    2   02/2014 01390H MICHELLE SAVIER   QA1  2G5001      22       0  13020111 00799999000769168496
    3   02/2014 01390H MICHELLE SAVIER   QA1  2G5001      22       0  13020111 00799999000769168496
    4   02/2014 01390H MICHELLE SAVIER   QA1  2G5001      22       0  13020111 00799999000769168496
    5   02/2014 01390H MICHELLE SAVIER   QA1  2G5001      22       0  13020111 00799999000769168496
    6   02/2014 01390H MICHELLE SAVIER   QA1  2G5001      22       0  13020111 00799999000769168496
      CAISSE      NUM_SS NUM_ADHER DATE_NAISS MOIS_EFFET ANN_EFFET CODE_PAIE NO_RUB
    1      1 8.51724e+11    416239   10101985         02      2014         1    100
    2      1 8.51724e+11    416239   10101985         02      2014         1    143
    3      1 8.51724e+11    416239   10101985         02      2014         1    176
    4      1 8.51724e+11    416239   10101985         02      2014         1    300
    5      1 8.51724e+11    416239   10101985         02      2014         1    302
    6      1 8.51724e+11    416239   10101985         02      2014         1    304
                    LIB_RUB CODE_NATUR DT_DEB DE_FIN   MT_MOIS MT_RAPPEL  TAUX ELEM_STAT
    1       SALAIRE DE BASE          1     NA     NA 103243.72         0  0.00       0.0
    2       PRIME DE PANIER          1     NA     NA    720.00         0 40.00      18.0
    3 IND.ANCIENNETE GROUPE          1     NA     NA   7416.61         0  0.00       0.0
    4     ASSURANCE SOCIALE          1     NA     NA   1659.90         0  1.50  110660.3
    5              RETRAITE          1     NA     NA   7469.57         0  6.75  110660.3
    6    RETRAITE ANTICIPEE          1     NA     NA    276.65         0  0.25  110660.3
    > str(FRUB02)
    'data.frame':	115822 obs. of  25 variables:
     $ DATE_EXPL : Factor w/ 1 level "02/2014": 1 1 1 1 1 1 1 1 1 1 ...
     $ MAT       : Factor w/ 5592 levels "00327A","00608U",..: 85 85 85 85 85 85 85 85 85 85 ...
     $ NOM_PRENOM: Factor w/ 5568 levels "GARRY DUPONT",..: 1095 1095 1095 1095 1095 1095 1095 1095 1095 1095 ...
     $ DIREC     : Factor w/ 85 levels "Q711","Q712",..: 11 11 11 11 11 11 11 11 11 11 ...
     $ CPT_ANA   : Factor w/ 23 levels "000265","2B5010",..: 8 8 8 8 8 8 8 8 8 8 ...
     $ ECHELLE   : Factor w/ 29 levels "11","12","13",..: 12 12 12 12 12 12 12 12 12 12 ...
     $ ECHELON   : int  0 0 0 0 0 0 0 0 0 0 ...
     $ COD_FONCT : Factor w/ 957 levels "01010109","01010111",..: 483 483 483 483 483 483 483 483 483 483 ...
     $ N_RIP_RIB : Factor w/ 5527 levels "00000000000000000000",..: 4417 4417 4417 4417 4417 4417 4417 4417 4417 4417 ...
     $ CAISSE    : int  1 1 1 1 1 1 1 1 1 1 ...
     $ NUM_SS    : num  8.52e+11 8.52e+11 8.52e+11 8.52e+11 8.52e+11 ...
     $ NUM_ADHER : Factor w/ 21 levels "1100SA","1300AS",..: 19 19 19 19 19 19 19 19 19 19 ...
     $ DATE_NAISS: Factor w/ 4269 levels "01011955","01011956",..: 1435 1435 1435 1435 1435 1435 1435 1435 1435 1435 ...
     $ MOIS_EFFET: Factor w/ 25 levels "","01","02","03",..: 3 3 3 3 3 3 3 3 3 3 ...
     $ ANN_EFFET : Factor w/ 17 levels "","2011","2012",..: 5 5 5 5 5 5 5 5 5 5 ...
     $ CODE_PAIE : Factor w/ 11 levels "","/","1","2",..: 3 3 3 3 3 3 3 3 3 3 ...
     $ NO_RUB    : Factor w/ 103 levels "","100","104",..: 2 17 27 59 60 61 62 66 74 75 ...
     $ LIB_RUB   : Factor w/ 100 levels "1                000",..: 97 54 35 6 91 92 77 52 11 17 ...
     $ CODE_NATUR: int  1 1 1 1 1 1 1 1 1 1 ...
     $ DT_DEB    : int  NA NA NA NA NA NA NA NA NA NA ...
     $ DE_FIN    : int  NA NA NA NA NA NA NA NA NA NA ...
     $ MT_MOIS   : num  103244 720 7417 1660 7470 ...
     $ MT_RAPPEL : num  0 0 0 0 0 0 0 0 0 0 ...
     $ TAUX      : num  0 40 0 1.5 6.75 0.25 0.5 2 1 0 ...
     $ ELEM_STAT : num  0 18 0 110660 110660 ...
    il s'agit dans ce cas des colonnes MT_MOIS et MT_RAPPEL.
    Dans FRUB01 elles sont considérées factor tandit que dans FRUB02 elles sont num, c'est pourquoi je pense que R tente de rechercher les valeurs de FRUB02 dans FRUB01 et fini par afficher NA (Not Available), et merci encore une fois.
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  4. #4
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    read.table et read.csv possèdent un argument stringsAsFactors dont la valeur par défaut est default.stringsAsFactors() (valeur qui est généralement TRUE sauf si elle est modifiée au lancement ou au cours de la session).

    Si ces procédures sont appelées avec stringsAsFactors=FALSE, les chaînes de caractères ne seront pas transformées en facteur. Il suffira alors de transformer ensuite les chaines qui doivent être des facteurs (cf. factor ou as.factor, selon les cas).

    Ce problème se retrouve aussi au niveau des data.frame qui ont aussi cet argument avec la même valeur par défaut.

    N.B. : La modification de l'option par défaut se fait par l'instruction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    options( stringsAsFactors=FALSE)

  5. #5
    Membre actif
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Points : 296
    Points
    296
    Par défaut
    En complément des deux réponses déjà reçues, à savoir définir les classes des colonnes et éviter la transformations des chaînes de caractères en facteurs.
    • Les valeurs de la colonne MT_MOIS ne pourront pas être lues en tant que nombres sans transformation préalable : 15,181.42 n'a pas de classe correspondante, la virgule est à éliminer. Cela peut être fait en lisant cette colonne comme chaîne et en faisant la conversion après ; mais ça peut aussi être fait directement (voir ici-bas).
    • Les mêmes considérations sont valables pour la colonne ELEM_STAT.
    • Les colonnes DATE_EXPL et ANN_EFFET contiennent des dates ; R a des classes qui gèrent ce type de données, ça peut donc également être spécifiée lors de la lecture des fichiers. Mais comme les valeurs montrées sont des dates « incomplètes » (il n'y a pas au moins de jour, mois et année pour chaque valeur), là aussi une transformation s'impose (voir ici-bas).
    • Le format de date « mois/année » (e.g. 01/2014) n'est pas directement parsable, mais l'inverse si, i.e. « année/mois » (2014/01).


    En somme :
    Données : exemple.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DATE_EXPL	MAT	NOM_PRENOM	DIREC	CPT_ANA	ECHELLE	ECHELON	COD_FONCT	N_RIP_RIB	CAISSE	NUM_SS	NUM_ADHER	DATE_NAISS	MOIS_EFFET	ANN_EFFET	CODE_PAIE	NO_RUB	LIB_RUB	CODE_NATUR	DT_DEB	DE_FIN	MT_MOIS	MT_RAPPEL	TAUX	ELEM_STAT
    2014/01	00879U	CAROLE EVRA	Q71T	2F5016	25	6	24020YK73	7.99999e+17	3	5.90041e+11	565789	21021959	1	2014	1	300	ASSURANCE SOCIALE	1			3,373.65	0.00	1.50	224,910.07
    2014/01	00879U	CAROLE EVRA	Q71T	2F5016	25	6	24020YK73	7.99999e+17	3	5.90041e+11	565789	21021959	1	2014	1	302	RETRAITE	1			15,181.42	0.00	6.75	224,910.07
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    # Conversion des nombres où les milliers sont séparés par des virgules
    setClass("convertirCharNum", contains = "numeric")
    setAs(from = "character", to = "convertirCharNum",
          def = function(from) as.numeric(gsub(",", "", from)))
     
    # Conversion des dates en « mois & année »
    setClass("convertirMoisAnnee", contains = "POSIXct")
    library("lubridate")
    setAs(from = "character", to = "convertirMoisAnnee",
          def = function(from) ymd(from, truncated = 1L))
     
    # Conversion des dates en « année »
    setClass("convertirAnnee", contains = "POSIXct")
    setAs(from = "character", to = "convertirAnnee",
          def = function(from) strptime(from, format = "%Y"))
     
    classesColonnes <- c(
        "convertirMoisAnnee", "character", "character", "character", "character",
        "integer", "integer", "character", "numeric", "integer", "numeric",
        "integer", "integer", "integer", "convertirAnnee", "integer", "integer",
        "character", "integer", "character", "character", "convertirCharNum",
        "numeric", "numeric", "convertirCharNum")
     
    FRUB01 <- read.table("exemple.txt", sep = "\t", header = TRUE, quote = "",
                         stringsAsFactors = FALSE, colClasses = classesColonnes)
     
    str(FRUB01)
    'data.frame':	2 obs. of  25 variables:
     $ DATE_EXPL : POSIXct, format: "2014-01-01" "2014-01-01"
     $ MAT       : chr  "00879U" "00879U"
     $ NOM_PRENOM: chr  "CAROLE EVRA" "CAROLE EVRA"
     $ DIREC     : chr  "Q71T" "Q71T"
     $ CPT_ANA   : chr  "2F5016" "2F5016"
     $ ECHELLE   : int  25 25
     $ ECHELON   : int  6 6
     $ COD_FONCT : chr  "24020YK73" "24020YK73"
     $ N_RIP_RIB : num  8e+17 8e+17
     $ CAISSE    : int  3 3
     $ NUM_SS    : num  5.9e+11 5.9e+11
     $ NUM_ADHER : int  565789 565789
     $ DATE_NAISS: int  21021959 21021959
     $ MOIS_EFFET: int  1 1
     $ ANN_EFFET : POSIXlt, format: "2014-02-08" "2014-02-08"
     $ CODE_PAIE : int  1 1
     $ NO_RUB    : int  300 302
     $ LIB_RUB   : chr  "ASSURANCE SOCIALE" "RETRAITE"
     $ CODE_NATUR: int  1 1
     $ DT_DEB    : chr  "" ""
     $ DE_FIN    : chr  "" ""
     $ MT_MOIS   : num  3374 15181
     $ MT_RAPPEL : num  0 0
     $ TAUX      : num  1.5 6.75
     $ ELEM_STAT : num  224910 224910

  6. #6
    Membre averti Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Points : 356
    Points
    356
    Par défaut
    Je vous remercie toutes et tous de vous être intéressé à ma discussion.
    l'approche de faubry qui se veut une approche universelle a bel et bien marché pour les deux colonnes sur lesquelles je me plaignais càd MT-MOIS et MT-RAPPEL, et aprés avoir installer le package "lubridate", je voulus tenter de parvenir aux résultat idéal qu'a présenté juliatheric, mais malheureusement je tombe sur un autre panneau d'on ne peut plus curieux:
    Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
    line 1 did not have 25 elements
    Une erreur relative au nombre de colonnes de mon fichier CSV par rapport aux nombres d'éléments dans la variable classesColonnes que l'on exploite comme argument colClasses de la fonction read.table, je suis allé voir dans mon fichier CSV, celui-ci contient bien 25 colonnes.
    C'est tout de même curieux.
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  7. #7
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    Il faut vérifier s'il n'y a pas de chaines de caractères qui contiennent une apostrophe ou une double apostrophe qui sont considérés par défaut comme les caractères délimitant les chaines de caractères (argument quote) ou un dièse qui est considéré par défaut comme le signe annonciateur des commentaires (argument comment.char). Quand write.table rencontre ce caractère, il ne lit plus au-delà et oublie donc les colonnes à sa droite. Pour éviter ce problème, il faut alors spécifier comment.char=""

  8. #8
    Membre averti Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Points : 356
    Points
    356
    Par défaut
    Il faut vérifier s'il n'y a pas de chaines de caractères qui contiennent une apostrophe ou une double apostrophe qui sont considérés par défaut comme les caractères délimitant les chaines de caractères (argument quote) ou un dièse qui est considéré par défaut comme le signe annonciateur des commentaires (argument comment.char). Quand write.table rencontre ce caractère, il ne lit plus au-delà et oublie donc les colonnes à sa droite. Pour éviter ce problème, il faut alors spécifier comment.char=""
    Malheureusement ce n'est pas le cas, je viens de passer en revue les entêtes de toutes les colonnes mais elles paraissent toutes dépourvues d'anomalies et elles sont bien au nombre de 25 comme vous pourrez le constater dans ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    'data.frame':	114933 obs. of  25 variables:
     $ DATE_EXPL : chr  "01/2014" "01/2014" "01/2014" "01/2014" ...
     $ MAT       : chr  "00879U" "00879U" "00879U" "00879U" ...
     $ NOM_PRENOM: chr  "JULIEN SAGUET" "JULIEN SAGUET" "JULIEN SAGUET" "JULIEN SAGUET" ...
     $ DIREC     : chr  "Q71T" "Q71T" "Q71T" "Q71T" ...
     $ CPT_ANA   : chr  "2F5016" "2F5016" "2F5016" "2F5016" ...
     $ ECHELLE   : chr  "25" "25" "25" "25" ...
     $ ECHELON   : int  6 6 6 6 6 6 6 6 6 6 ...
     $ COD_FONCT : chr  "24020YK73" "24020YK73" "24020YK73" "24020YK73" ...
     $ N_RIP_RIB : num  8e+17 8e+17 8e+17 8e+17 8e+17 ...
     $ CAISSE    : int  3 3 3 3 3 3 3 3 3 3 ...
     $ NUM_SS    : num  5.9e+11 5.9e+11 5.9e+11 5.9e+11 5.9e+11 ...
     $ NUM_ADHER : int  565789 565789 565789 565789 565789 565789 565789 565789 565789 565789 ...
     $ DATE_NAISS: chr  "21021959" "21021959" "21021959" "21021959" ...
     $ MOIS_EFFET: int  1 1 1 1 1 1 1 1 1 1 ...
     $ ANN_EFFET : int  2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 ...
     $ CODE_PAIE : int  1 1 1 1 1 1 1 1 1 1 ...
     $ NO_RUB    : chr  "100" "176" "200" "289" ...
     $ LIB_RUB   : chr  "SALAIRE DE BASE" "IND.ANCIENNETE GROUPE" "SALAIRE UNIQUE" "I Z C V  G" ...
     $ CODE_NATUR: int  1 1 1 1 1 1 1 1 1 1 ...
     $ DT_DEB    : int  NA NA NA NA NA NA NA NA NA NA ...
     $ DE_FIN    : int  NA NA NA NA NA NA NA NA NA NA ...
     $ MT_MOIS   : chr  "191,317.42 " "33,592.65 " "1,500.00 " "61,850.79 " ...
     $ MT_RAPPEL : chr  "0.00 " "0.00 " "0.00 " "0.00 " ...
     $ TAUX      : num  0 0 0 290.8 1.5 ...
     $ ELEM_STAT : chr  "0.00 " "0.00 " "0.00 " "27.00 " ...
    Le seul caractère spécial ici présent est le tiret Bas.

    Merci pour votre temps.
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  9. #9
    Membre actif
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Points : 296
    Points
    296
    Par défaut
    Bonjour,
    Pourriez-vous donner un aperçu de vos données telles qu'elles sont ?
    C.-à.-d. copier quelques lignes (une dizaine par exemple) du fichier d'entrée qui pose des soucis et les poster dans le fil.

Discussions similaires

  1. gros problème de type de données
    Par maverick91 dans le forum Modélisation
    Réponses: 2
    Dernier message: 10/11/2008, 13h37
  2. Problème de type de données entre Java et Postgres
    Par La Piotte dans le forum EDI et Outils pour Java
    Réponses: 1
    Dernier message: 31/01/2008, 20h23
  3. [BO 6.5.1] Problème de type de données
    Par maitre_yoda78 dans le forum Deski
    Réponses: 4
    Dernier message: 16/01/2008, 15h38
  4. Problème avec type de données
    Par yancimer dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/09/2006, 16h54
  5. Réponses: 4
    Dernier message: 09/05/2006, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo