R에서 나누지 않고 문자열의 길이 (문자열의 문자 수)를 찾는 방법은 무엇입니까? 문자열의 길이가 아닌 목록의 길이를 찾는 방법을 알고 있습니다.
그리고 유니 코드 문자열은 어떻습니까? 유니 코드 문자열에서 길이 (바이트)와 문자 수 (런, 기호)를 찾으려면 어떻게합니까?
관련 질문 :
답변
참조하십시오 ?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
답변
stringr
패키지를 사용할 수도 있습니다 .
library(stringr)
str_length("foo")
[1] 3
답변
답변
keepNA = TRUE 옵션은 NA 관련 문제를 방지합니다
nchar(NA)
## [1] 2
nchar(NA, keepNA=TRUE)
## [1] NA
답변
nchar(YOURSTRING)
먼저 문자형 벡터로 변환해야 할 수도 있습니다.
nchar(as.character(YOURSTRING))