Problème de conversion de character en numeric

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Manon Jean
Messages : 14
Enregistré le : 04 Mai 2017, 15:08

Problème de conversion de character en numeric

Messagepar Manon Jean » 11 Mai 2017, 09:35

Bonjour,

voici mon tableau :

Code : Tout sélectionner

     ville                      Sobs Q1   Q2   chao
  [1,] "ANCTOVILLE-SUR-BOSCQ"     "23" "12" "2"  "0"
  [2,] "ANGIENS"                  "28" "12" "8"  "0"
  [3,] "ASNIERES-EN-BESSIN"       "28" "12" "6"  "0"
  [4,] "BELVAL"                   "20" "4"  "5"  "0"
  [5,] "BERDHUIS"                 "26" "11" "5"  "0"
  [6,] "BeRIGNY"                  "21" "8"  "6"  "0"


Comme vous pouvez le voir mes colonnes sont en classe "character"

voici comment le tableau est composé :

Code : Tout sélectionner

 chr [1:106, 1:5] "ANCTOVILLE-SUR-BOSCQ" "ANGIENS" ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:5] "ville" "Sobs" "Q1" "Q2" ...


J'ai essayé de changer la classe de mes colonnes Sobs, Q1, Q2 et chao en numeric :

Code : Tout sélectionner

chao[,4]=as.numeric(chao[,4])


La fonction s'exécute mais quand je visualise le tableau rien n'a changé.
Sur les forums en général les gens demandent pour convertir factor en numeric mais je ne trouve pas de questions pour character en numeric.

Ma matrice était au format numeric avant que je change les noms de la première colonne avec les levels d'un autre tableau :

Code : Tout sélectionner

chao[,1]=levels(unique(inf2013[,2]))
> chao
       ville                      Sobs Q1  Q2  chao
  [1,] "ANCTOVILLE-SUR-BOSCQ"     "0"  "0" "0" "0"
  [2,] "ANGIENS"                  "0"  "0" "0" "0"
  [3,] "ASNIERES-EN-BESSIN"       "0"  "0" "0" "0"
  [4,] "BELVAL"                   "0"  "0" "0" "0"
  [5,] "BERDHUIS"                 "0"  "0" "0" "0"


Je pense que le problème vient de là mais je ne sais vraiment pas comment le résoudre. Ce n'est pas la première fois que ça m'arrive.

Auriez-vous une idée ?

Merci,

Manon

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Problème de conversion de character en numeric

Messagepar Pierre-Yves Berrard » 11 Mai 2017, 11:07

Bonjour,

Une matrice (telle que définie dans R) ne peut stocker qu'un seul type de données (caractère, numérique, logique...).
Donc si vous modifiez une partie de la matrice, toute la matrice va être convertie en caractère (le type le plus flexible).

Ma suggestion : utiliser une structure de données plus adaptée, comme le data.frame. Si vous tenez absolument à garder une matrice, il est possible de stocker une chaîne de caractères dans les noms de lignes et noms de colonnes.
PY

Manon Jean
Messages : 14
Enregistré le : 04 Mai 2017, 15:08

Re: Problème de conversion de character en numeric

Messagepar Manon Jean » 11 Mai 2017, 11:42

D'accord, merci beaucoup ! Je vais tenter le data.frame !


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité

cron