La génération d'un vecteur, le nombre de points dans chaque élément de la liste
J'ai une liste contenant 98 points. Mais chaque élément contient 0, 1, 2, 3, 4 ou 5 chaînes de caractères.
Je sais comment obtenir la longueur de la liste et en fait quelqu'un a posé la question avant et a voté vers le bas pour sans doute poser une question facile.
Mais je veux un vecteur qui est de 98 éléments de long avec chaque élément étant un entier de 0 à 5 me dire combien de chaînes de caractères il y a dans chaque élément de la liste.
Je m'attendais à la suite de travailler, mais il n'a pas.
lapply(name.of.list,length())
De ma question, vous verrez que je ne sais pas vraiment la nomeclature de listes et les éléments. Hésitez pas à me redresser.
OriginalL'auteur Farrel | 2010-01-17
Vous devez vous connecter pour publier un commentaire.
Farrel, je n'ai pas exactement suivi comme "élément" n'est pas un R-type. Peut-être que vous avez un
list
de longueur 98, où chaque élément est un vecteur de la chaîne de caractères?Dans ce cas, pensez à ceci:
Donc, il est à vous de vecteur de la longueur de votre liste, vous dire combien de chaînes de chaque élément de la liste. Notez que le dernier
do.call(rbind, someList)
que nous avons obtenu une liste delapply
.Si, d'autre part, vous voulez compter la longueur de toutes les cordes à chaque position, remplacer le simple
length(x)
avec une nouvelle fonction de comptage de caractères:Si ce n'est pas ce que vous voulez, vous pourriez peut-être se moquer d'un exemple de données d'entrée?
Edit:: En réponse à vos commentaires, ce que tu voulais sans doute:
Remarque que je passe dans
length
, le nom d'une fonction, et non paslength()
, l' (affiche) corps d'une fonction. Parce que c'est facile à mélanger, j'ai tout simplement s'appliquent presque toujours enrouler une fonction anonyme autour comme dans ma première réponse.Et oui, cela peut aussi être fait avec juste
sapply
ou même certains de la**ply
fonctions:Yip, il a travaillé. Fantastique. En fait sapply travaillaient encore mieux car c'est un simple vecteur qui je peux maintenant aller et cbind sur une préexistant dataframe. Maintenant, pouvez-vous m'expliquer comment lapply(nom.de.liste,longueur()) et lapply(nom.de.liste,la fonction(x) la longueur(x)) sont différentes.
Voir également la modifier à ma réponse -- en essence
length
est différente delength()
et vous voulez que l'ancien.OriginalL'auteur Dirk Eddelbuettel
Tout cela semble très compliqué - il y a une fonction précisément de faire ce que vous demandez pour:
À l'aide de Dirks des données de l'échantillon:
sera de retour un nommé entier vecteur:
OriginalL'auteur Peer Wünsche
Le code ci-dessous accepte une liste et retourne un vecteur de longueur:
OriginalL'auteur doug