Discussion: Dictionnaire sous R

  1. #1
    Membre habitué
    Inscrit en
    novembre 2003
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : novembre 2003
    Messages : 401
    Points : 187
    Points
    187

    Par défaut Dictionnaire sous R

    Bonjour,
    Je cherche à créer un dictionnaire pour rendre plus rapide certaines affectations sous R, un peu comme sur d'autres langages (Python).
    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DF=data.frame(X=c(1,4,6,3,1,1,5,2))
    Dico=list(X=c(1,2,3,4,5),Y=c('A','Y','C','K','U'))
    DF$Y <- Dico[Dico[['X']]==DF$X,'Y']
    Ici, le data.frame DF contient une seule colonne : X.
    Et j'essaie de créer la colonne Y en récupérant la valeur dans le dictionnaire Dico.
    La variable X contient aussi une valeur (6) non présente dans le dictionnaire. Mon objectif est que le code retourne NA s'il ne trouve pas la valeur idoine.

    Mais l'exécution de ce code génère une erreur non liée à cette valeur inconnue du dictionnaire, et qui provient du fait que la dimension de mon dictionnaire n'est pas égale à celle de ma table.

    Quelqu'un connaitrait-il la méthode adéquate (sans passer par l'instruction ifelse(), qui n'est pas très élégante, et surtout lente sur de grands tableaux de données) ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    janvier 2012
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : janvier 2012
    Messages : 308
    Points : 824
    Points
    824

    Par défaut

    Je ne comprends pas trop ce que tu essayes de faire avec ta liste Dico. Pourquoi ne pas utiliser directement un vecteur ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DF=data.frame(X=c(1,4,6,3,1,1,5,2))
    Y=c('A','Y','C','K','U')
    DF$Y=Y[DF$X]

Discussions similaires

  1. dictionnaire sous TeXworks mac OS
    Par nico_diou dans le forum Editeurs / Outils
    Réponses: 1
    Dernier message: 13/05/2011, 07h35
  2. Dictionnaire sous java
    Par havok77 dans le forum Langage
    Réponses: 1
    Dernier message: 12/01/2009, 14h44
  3. Dictionnaire sous linux
    Par logicave dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 08/12/2006, 20h42
  4. [POO] objet "dictionnaire" sous Firefox
    Par spikelille dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/07/2006, 17h04
  5. Besoin d'un dictionnaire sous linux
    Par mechatikhaled dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 03/11/2005, 18h47

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