Comment trouver la longueur d'une chaîne (nombre de caractères dans une chaîne) sans la scinder en R? Je sais comment trouver la longueur d'une liste mais pas celle d'une chaîne.
Et qu'en est-il des chaînes Unicode? Comment trouver la longueur (en octets) et le nombre de caractères (runes, symboles) dans une chaîne Unicode?
Question connexe:
Voir ?nchar
. Par exemple:
> nchar("foo")
[1] 3
> set.seed(10)
> strn <- paste(sample(LETTERS, 10), collapse = "")
> strn
[1] "NHKPBEFTLY"
> nchar(strn)
[1] 10
Utiliser le package stringi
et la fonction stri_length
> stri_length(c("ala ma kota","ABC",NA))
[1] 11 3 NA
Pourquoi? Parce que c'est la plus rapide parmi les solutions présentées :)
require(microbenchmark)
require(stringi)
require(stringr)
x <- c(letters,NA,paste(sample(letters,2000,TRUE),collapse=" "))
microbenchmark(nchar(x),str_length(x),stri_length(x))
Unit: microseconds
expr min lq median uq max neval
nchar(x) 11.868 12.776 13.1590 13.6475 41.815 100
str_length(x) 30.715 33.159 33.6825 34.1360 173.400 100
stri_length(x) 2.653 3.281 4.0495 4.5380 19.966 100
et fonctionne aussi très bien avec NA
nchar(NA)
## [1] 2
stri_length(NA)
## [1] NA
nchar("STRING")
Départ this
Vous pouvez également utiliser le package stringr
:
library(stringr)
str_length("foo")
[1] 3
L'option keepNA = TRUE évite les problèmes avec NA
nchar(NA)
## [1] 2
nchar(NA, keepNA=TRUE)
## [1] NA
nchar(YOURSTRING)
vous devrez peut-être d'abord convertir un vecteur de caractère;
nchar(as.character(YOURSTRING))