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 :

Convertir range de variables


Sujet :

R

  1. #1
    Invité
    Invité(e)
    Par défaut Convertir range de variables
    Bonjour,
    Après l'importation d'un CSV composé de:
    • 1er ligne : header de mes variables
    • 1ere colonne : des dates
    • 2e colonne à 500e colonne : mes variables quantitatives (parfois des vides (=>NA))


    Je me retrouve avec que des variables de type Factor. J'aimerais pouvoir convertir toutes ces variables (de la 2e à la 500e) en type quantitatif (Numeric donc?).


    Avez vous une idée?
    Dernière modification par ced ; 20/01/2014 à 17h33.

  2. #2
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonjour,

    une petite recherche sur google vous donne le lien suivant:
    http://cran.r-project.org/doc/FAQ/R-...o-numeric_003f

    Bonne continuation

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Merci pour la réponse. J'étais déjà tombé sur cette astuce par contre je ne sais pas comment bien l'utiliser (surement parce que je débute avec R ...). Je m'attendais à quelque chose qui aurait une forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    as.numeric(variable[2:end])
    Ici avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    as.numeric(levels(f))[as.integer(f)]
    dois-je mettre dans "f" le nom de toute mes variables? Cad par exemple:
    f <- {euro dollar chevre ours ........................................................}


    Merci
    Dernière modification par A. D. ; 21/01/2014 à 18h30. Motif: balises "code"

  4. #4
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonsoir,

    c'était plus compliqué que ce que j'avais compris, désolée...

    Une réponse utilisant ces fonctions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    asNumeric <- function(x) as.numeric(as.character(x))
    factorsNumeric <- function(d) modifyList(d, lapply(d[, sapply(d, is.factor)],   
                                                       asNumeric))
    est donnée ici

    En espérant que cela réponde à votre question.

    Bonne soirée

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je viens de lancer l'exemple mais ça n'a pas l'air de bien fonctionner:


    > table_init<-read.csv2("h:/My Documents/.../TO_CONSIDER_R.csv",header=TRUE)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    > asNumeric <- function(x) as.numeric(as.character(x))
    > factorsNumeric <- function(d) modifyList(d, lapply(d[, sapply(d, is.factor)], asNumeric))
    > data <- factorsNumeric(table_init)
    Message d'avis :
    In FUN(X[[204L]], ...) : NAs introduits lors de la conversion automatique
    > str(table_init)
    'data.frame': 3063 obs. of 232 variables:
    $ Date : Factor w/ 3063 levels "01.02.2002","01.02.2005",..: 94 196 297 600 703 806 905 1005 1309 1411 ...
    $ BERGER_3_75_03_23_2015_Govt_YTM : Factor w/ 51 levels "0.1","0.2","0.3",..: 51 51 51 51 51 51 51 51 51 51 ...
    $ BADWUR_3_5_01_14_2015_Govt_YTM : Factor w/ 52 levels "0","0.1","0.2",..: 52 52 52 52 52 52 52 52 52 52 ...

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai trouvé une autre astuce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    > table_init[, 2:232] <- sapply(table_init[, 2:232], as.numeric)
    > str(table_init)
    'data.frame':   3063 obs. of  232 variables:
     $ Date                            : Factor w/ 3063 levels "01.02.2002","01.02.2005",..: 94 196 297 600 703 806 905 1005 1309 1411 ...
     $ BERGER_3_75_03_23_2015_Govt_YTM : num  51 51 51 51 51 51 51 51 51 51 ...
     $ BADWUR_3_5_01_14_2015_Govt_YTM  : num  52 52 52 52 52 52 52 52 52 52 ...
    Par contre savez-vous si mes données sont altérées par une double conversion?


    Merci
    Dernière modification par Invité ; 21/01/2014 à 11h47.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. L'objet range avec variables et concatenation
    Par bigmousse69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/01/2009, 19h52
  2. Comment definir une range à colonne variable ?
    Par daduck dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2008, 11h09
  3. Range avec Variable
    Par argal dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2008, 11h39
  4. Convertir Range en Cells
    Par Sakapatate dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2008, 15h18
  5. Convertir String en variable enumerée
    Par kalikut dans le forum C#
    Réponses: 3
    Dernier message: 25/07/2007, 15h49

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