Comment vectoriser R strsplit?

Lors de la création de fonctions qui utilisent strsplit, le vecteur des entrées de ne pas se comporter comme vous le souhaitez, et sapply doit être utilisé. Cela est dû à la liste de sortie que strsplit produit. Est-il possible de vectoriser le processus - qui est, la fonction produit le bon élément dans la liste pour chacun des éléments de l'entrée?

Par exemple, de compter les longueurs de mots dans un caractère de vecteur:

words <- c("a","quick","brown","fox")

> length(strsplit(words,""))
[1] 4 # The number of words (length of the list)

> length(strsplit(words,"")[[1]])
[1] 1 # The length of the first word only

> sapply(words,function (x) length(strsplit(x,"")[[1]]))
a quick brown   fox 
1     5     5     3 
# Success, but potentially very slow

Idéalement, quelque chose comme length(strsplit(words,"")[[.]]). est interprétée comme étant la partie correspondante du vecteur d'entrée.

OriginalL'auteur James | 2010-06-16