如何查找字符串的长度(字符串中的字符数)而不用R拆分?我知道如何找到列表的长度而不是字符串的长度。
Unicode字符串呢?如何找到Unicode字符串的长度(以字节为单位)和字符数(符文,符号)?
相关问题:
如何查找字符串的长度(字符串中的字符数)而不用R拆分?我知道如何找到列表的长度而不是字符串的长度。
Unicode字符串呢?如何找到Unicode字符串的长度(以字节为单位)和字符数(符文,符号)?
相关问题:
Answers:
请参阅?nchar
。例如:
> nchar("foo")
[1] 3
> set.seed(10)
> strn <- paste(sample(LETTERS, 10), collapse = "")
> strn
[1] "NHKPBEFTLY"
> nchar(strn)
[1] 10
nchar(NA)
NA
s的字符向量。(尽管据记录如此)。
stri_length
从stringi
-它正常工作与NA的,这是更快的:)检查我的帖子!
nchar(NA) ## [1] NA
:参见nchar RDocumentation
使用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
stri_length('\u0105')
length是1,但是...使用stri_numbytes('\u0105')
2个字节
nchar()
现在有一个参数说明了NA:allowNA = FALSE
keepNA = TRUE选项可防止NA问题
nchar(NA)
## [1] 2
nchar(NA, keepNA=TRUE)
## [1] NA
nchar(NA) ## [1] NA
:参见nchar RDocumentation
x
。