Supprimer les éléments vides dans la liste de caractère(0)
Comment puis-je supprimer des éléments vides dans une liste qui contient la longueur zéro pairlist comme
character(0)
, integer(0)
etc...
list2
# $`hsa:7476`
# [1] "1","2","3"
#
# $`hsa:656`
# character(0)
#
# $`hsa:7475`
# character(0)
#
# $`hsa:7472`
# character(0)
Je ne sais pas comment traiter avec eux. Je veux dire, si NULL
c'est beaucoup plus simple. Comment puis-je supprimer ces éléments de sorte que seulement hsa:7476
reste dans la liste.
InformationsquelleAutor Richard A. Schäfer | 2013-09-26
Vous devez vous connecter pour publier un commentaire.
Une autre option(je pense plus efficace) en gardant l'index où la longueur de l'élément > 0 :
Une approche possible est
où
Cela fonctionne en raison du fait que les entiers positifs obtenir contraints à
TRUE
parFilter
et, par conséquent, sont conservés, tandis que le zéro n'est pas:Filter
. Vous pouvez également faireFilter(function(x) !identical(character(0),x), l)
si vous voulez vérifier que contrecharacter(0)
lengths
approche nécessite de disposer d'unl
en premier lieu à fairel[lengths(l) > 0]
. Je peux l'appliquer sur le processus de création de mon sous-ensemble.Par souci d'exhaustivité, le purrr package à partir de la populaire tidyverse a quelques fonctions utiles pour travailler avec des listes -
compact
(introduction) fait le truc, trop, et fonctionne très bien avec magrittr de%>%
tuyaux:ou
Utilisation
lengths()
de définir les longueurs des éléments de la liste:Assez drôle, aucune des nombreuses solutions ci-dessus supprimer le vide/vide chaîne de caractères:
""
. Mais la solution triviale n'est pas facile à trouver:L[L != ""]
.Pour résumer, voici les différents moyens de supprimer les éléments indésirables d'une liste de tableau.