51 votes

Comment ajouter une paire clé / valeur variable à un objet de liste?

R newbie question:

J'ai deux variables, key et value , et je veux les ajouter en tant que paire clé / valeur à une liste:

 key = "width"
value = 32

mylist = list()
mylist$key = value
 

Le résultat est le suivant:

 mylist
$key
[1] 32
 

Mais j'aimerais plutôt ceci:

 mylist
$width
[1] 32
 

Comment puis-je faire ceci?

67voto

Sharpie Points 6291

Les listes R peuvent être considérées comme des vecteurs de hachage - des objets accessibles par nom. En utilisant cette approche, vous pouvez ajouter une nouvelle entrée à la liste comme ceci:

 key <- "width"
value <- 32

mylist <- list()
mylist[[ key ]] <- value
 

Ici, nous utilisons la chaîne stockée dans la clé de variable pour accéder à une position dans la liste, un peu comme si vous utilisiez la valeur stockée dans une variable de boucle i pour accéder à un vecteur via:

 vector[ i ]
 

Le résultat est:

 myList
$width
[1] 32
 

13voto

mpiktas Points 1924

Les éléments de liste dans R peut être nommé. Donc dans votre cas il suffit de ne

 > mylist = list()
 > mylist$width = value

Lors de la R des rencontres de ce code

> l$somename=something

où l est une liste de. Il ajoute à une liste à un élément de quelque chose, et les noms avec le nom abc. Il est alors peut être consulté en utilisant

> l[["somename"]]

ou

> l$somename

Le nom peut être changé avec les noms de commandes:

> names(l)[names(l)=="somename"] <- "othername"

Ou si vous avez maintenant la position de l'élément dans la liste:

> names(l)[1] <- "someothername"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X