[r] R에서 문자열의 길이를 찾는 방법

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


답변

nchar("STRING")

이것을 확인하십시오


답변

keepNA = TRUE 옵션은 NA 관련 문제를 방지합니다

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


답변

nchar(YOURSTRING)

먼저 문자형 벡터로 변환해야 할 수도 있습니다.

nchar(as.character(YOURSTRING))


답변