¿Cómo encontrar la longitud de una cuerda en R?

¿Cómo encontrar la longitud de una cadena (número de caracteres en una cadena) sin dividirla en R? Sé cómo encontrar la longitud de una lista, pero no de una cadena.

¿Y qué pasa con las cadenas Unicode? ¿Cómo puedo encontrar la longitud (en bytes) y el número de caracteres (runas, símbolos) en una cadena Unicode?

Pregunta relacionada:

  • Cómo encontrar el número “real” de caracteres en una cadena Unicode en R

Ver ?nchar . Por ejemplo:

 > nchar("foo") [1] 3 > set.seed(10) > strn <- paste(sample(LETTERS, 10), collapse = "") > strn [1] "NHKPBEFTLY" > nchar(strn) [1] 10 

Usa el paquete stri_length y la función stri_length

 > stri_length(c("ala ma kota","ABC",NA)) [1] 11 3 NA 

¿Por qué? Porque es la más RÁPIDA entre las soluciones presentadas 🙂

 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 

y también funciona bien con NA

 nchar(NA) ## [1] 2 stri_length(NA) ## [1] NA 
 nchar("STRING") 

Mira esto

También podría usar el paquete stringr :

 library(stringr) str_length("foo") [1] 3 

La opción keepNA = TRUE evita problemas con NA

 nchar(NA) ## [1] 2 nchar(NA, keepNA=TRUE) ## [1] NA 
 nchar(YOURSTRING) 

es posible que deba convertir primero a un vector de caracteres;

 nchar(as.character(YOURSTRING))