317 votes

Comment puis-je supprimer un élément d'une liste

J'ai une liste et je veux en retirer un seul élément. Comment puis-je faire ceci?

J'ai essayé de chercher ce que je pense que les noms évidents pour cette fonction seraient dans le manuel de référence et je n'ai rien trouvé de approprié.

244voto

Florian Jenn Points 1556

Si vous ne voulez pas modifier la liste en place (par exemple en passant de la liste avec un élément supprimé à une fonction), vous pouvez utiliser l’indexation : les indices négatifs signifient « n’incluent pas cet élément ».

En outre, les vecteurs index logique sont utiles :

Cela fonctionne aussi avec dataframes :

236voto

Chad Birch Points 39087

Je ne sais pas de R à tous, mais un peu de créativité recherche sur google m'a conduit ici: http://tolstoy.newcastle.edu.au/R/help/05/04/1919.html

La clé de citation de:

Je ne trouve pas la documentation explicite pour les R sur la façon de supprimer des éléments dans des listes, mais essai et d'erreur me dit

myList[[5]] <- NULL

va supprimer le 5ème élément, puis "fermer" le trou causé par la suppression de cet élément. Que suffles les valeurs de l'index, Donc je dois faire attention en déplaçant des éléments. Je dois travailler à partir de la fin de la liste à l'avant.

Une réponse à ce post plus tard dans le fil d' états:

Pour supprimer un élément d'une liste, voir R FAQ 7.1

Et la section pertinente de la R FAQ dit:

... De ne pas définir x[i] x[[i]], NULL, car cela permettra d'éliminer l'élément correspondant de la liste.

Ce qui semble vous dire (en un peu en arrière en chemin), comment faire pour supprimer un élément.

Hope qui aide, ou au moins vous mène dans la bonne direction.

35voto

Aleksandr Levchuk Points 1140

Voici comment le supprimer le dernier élément d’une liste de gauche à droite :

Si x peut être un vecteur, alors vous devrez créer un nouvel objet :

  • Travailler pour les listes et les vecteurs

21voto

Sukhdeep Singh Points 166

Suppression des éléments Null dans une liste en ligne :

``

à votre santé

17voto

alko989 Points 1590

Si vous avez un nom de liste et que vous souhaitez supprimer un élément spécifique, vous pouvez essayer:

lst <- list(a = 1:4, b = 4:8, c = 8:10)

if("b" %in% names(lst)) lst <- lst[ - which(names(lst) == "b")]

Cela permettra de faire une liste lst éléments a, b, c. La deuxième ligne supprime l'élément b après il vérifie qu'il existe (pour éviter le problème @hjv mentionné).

ou mieux:

lst$b <- NULL

De cette manière, il n'est pas un problème pour essayer de supprimer inexistante de l'élément (par exemple, lst$g <- NULL)

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