如何找到一个字符串的长度(即,字符串中的字符数)而不分裂它在R?我知道如何求列表的长度,但不知道字符串的长度。
那么Unicode字符串呢?我如何找到长度(字节)和字符(符文,符号)在Unicode字符串的数量?
相关问题:
如何在R中找到Unicode字符串中的“真实”字符数
如何找到一个字符串的长度(即,字符串中的字符数)而不分裂它在R?我知道如何求列表的长度,但不知道字符串的长度。
那么Unicode字符串呢?我如何找到长度(字节)和字符(符文,符号)在Unicode字符串的数量?
相关问题:
如何在R中找到Unicode字符串中的“真实”字符数
当前回答
keepNA = TRUE选项可以防止NA出现问题
nchar(NA)
## [1] 2
nchar(NA, keepNA=TRUE)
## [1] NA
其他回答
nchar("STRING")
看看这个
nchar(YOURSTRING)
你可能需要先转换成字符向量;
nchar(as.character(YOURSTRING))
你也可以使用stringr包:
library(stringr)
str_length("foo")
[1] 3
看到了什么? nchar。例如:
> nchar("foo")
[1] 3
> set.seed(10)
> strn <- paste(sample(LETTERS, 10), collapse = "")
> strn
[1] "NHKPBEFTLY"
> nchar(strn)
[1] 10
使用stringi包和stri_length函数
> stri_length(c("ala ma kota","ABC",NA))
[1] 11 3 NA
为什么?因为它是目前提供的解决方案中最快的:)
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
也适用于NA
nchar(NA)
## [1] 2
stri_length(NA)
## [1] NA
编辑2021
如果您正在使用最新的R版本,NA参数将不再有效。