Rで分割せずに文字列の長さ(文字列の文字数)を見つける方法は?文字列ではなくリストの長さを見つける方法を知っています。
そして、Unicode文字列はどうですか?Unicode文字列の長さ(バイト単位)と文字数(ルーン文字、記号)を確認するにはどうすればよいですか?
関連質問:
Rで分割せずに文字列の長さ(文字列の文字数)を見つける方法は?文字列ではなくリストの長さを見つける方法を知っています。
そして、Unicode文字列はどうですか?Unicode文字列の長さ(バイト単位)と文字数(ルーン文字、記号)を確認するにはどうすればよいですか?
関連質問:
回答:
を参照してください?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
fromを使用しますstringi
-NAでうまく機能し、より高速です:)私の投稿をチェックしてください!
nchar(NA) ## [1] NA
ます。ncharRDocumentationを
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')
長さは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
ます。ncharRDocumentationを
nchar(YOURSTRING)
最初に文字ベクトルに変換する必要があるかもしれません。
nchar(as.character(YOURSTRING))
nchar
ます。因子入力の場合nchar
、エラーがスローされるため、表示するように最初に変換を行う必要があります。
x
。