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 :

Mettre des noms dans une liste


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut Mettre des noms dans une liste
    Bonjour,

    J'essaye de créer une liste en lui ajoutant des éléments et un nom pour chaque groupe d'élément.
    Comment puis-je faire pour donner le nom de s1 et s2 dans la liste a pour que l'on puisse accéder aux éléments correspondant avec la commande a$nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    s1 = c(1,2,3)
    s2 = c(4,5,6)
    a = list()
     
    a[1] = NA
    a[[1]] = s1
     
    a[2] = NA
    a[[2]] = s2

  2. #2
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Bonjour,

    tu as plusieurs façons de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # au moment de la création de la liste :
    l1 <- list(s1 = s1, s2=s2)
    l1$s2
    [1] 4 5 6
    # a postériori :
    l1 <- list(s1, s2)
    names(l1) <- c("s1", "s2")
    l1$s2
    [1] 4 5 6
    cdlt

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    bonjour,

    quand je fais la commande names(l1) <- c("s1", "s2"), j'obtiens cette erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error in (function (classes, fdef, mtable)  : 
      unable to find an inherited method for function ‘name<-’ for signature ‘"list"

  4. #4
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    es-tu sur d'avoir taper names(l1) <- c("s1", "s2") et pas plutôt name(l1) <- c("s1", "s2") ? Dans mon exemple ma liste s'appelle l1 et je vois que la tienne s'appelle a, est-ce que tu as mis le bon nom de liste dans la fonction names ?

    Sinon il n'y a pas de raison pour que ça ne fonctionne pas.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    ha ^^, l'exemple fonctionne.
    Lorsque je souhaite récupérer le nom à partir d'une autre liste. Il ne se passe rien

    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
     
    > l2
    $s1
    [1] 'a' 'b' 'c'
     
    $s2
    [1] 'd' 'e' 'f'
     
    > l1
    [[1]]
    [1] 1 2 3
     
    [[2]]
    [1] 4 5 6
     
    > names(l1[1]) = names(l2[1])
    > l1[1]
    [[1]]
    [1] 1 2 3

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    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 : 325
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    names(l1)[1] = names(l2)[1]

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

Discussions similaires

  1. Ajouter des noms dans une liste déroulante
    Par Unreal Time dans le forum IHM
    Réponses: 1
    Dernier message: 13/11/2009, 15h02
  2. [AC-2007] Changer le nom des attributs dans une liste déroulante
    Par Razorback dans le forum IHM
    Réponses: 8
    Dernier message: 17/04/2009, 12h04
  3. Mettre des couleurs dans une zonne de liste
    Par moilou2 dans le forum IHM
    Réponses: 2
    Dernier message: 07/06/2008, 09h36
  4. Réponses: 18
    Dernier message: 13/06/2007, 16h17
  5. Mettre des images dans une liste déroulante
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 01/12/2006, 15h35

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