文字列の長さ(文字列内の文字数)をRで分割せずに見つける方法は?私はリストの長さを見つける方法を知っていますが、ストリングの長さは見つけられません。Rの文字列の長さを調べる方法は?
ユニコード文字列はどうですか? Unicode文字列の長さ(バイト数)と文字数(ルーン、シンボル)を調べるにはどうすればよいですか?
関連質問:
文字列の長さ(文字列内の文字数)をRで分割せずに見つける方法は?私はリストの長さを見つける方法を知っていますが、ストリングの長さは見つけられません。Rの文字列の長さを調べる方法は?
ユニコード文字列はどうですか? Unicode文字列の長さ(バイト数)と文字数(ルーン、シンボル)を調べるにはどうすればよいですか?
関連質問:
?nchar
を参照してください。たとえば:
> nchar("foo")
[1] 3
> set.seed(10)
> strn <- paste(sample(LETTERS, 10), collapse = "")
> strn
[1] "NHKPBEFTLY"
> nchar(strn)
[1] 10
'nchar(NA)' – hadley
@hadley実際、またはそれに関して、1つまたは複数の「NA」を持つ文字ベクトル。 (これはそうであると文書化されているが)。 –
'string_'から' stri_length'を使用してください - それはNAのものとうまく動作し、より速いです:)私の投稿をチェックしてください! – bartektartanus
nchar("STRING")
チェックアウトthis
またstringr
パッケージを使用することができます。
library(stringr)
str_length("foo")
[1] 3
nchar(YOURSTRING)
あなたが最初の文字ベクトルに変換する必要があるかもしれません
。
nchar(as.character(YOURSTRING))
因子入力を除いて、強制は 'nchar'によって実行されます。因子入力の場合、 'nchar'はエラーを投げるので、最初に表示するときに変換を行う必要があります。 –
使用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
答えてくれてありがとう、偉大な図書館(私が正しく理解すればあなたの図書館)です。 Unicode文字列はどうですか? –
うまく動作します。この例を見てください: 'stri_length( '\ u0105')' lengthは1ですが... 'stri_numbytes( '\ u0105')' 2バイトが使用されています – bartektartanus
で正常に動作しますのでkeepNA = TRUEオプションが一緒に)(評価使用してNA
nchar(NA)
## [1] 2
nchar(NA, keepNA=TRUE)
## [1] NA
3.3.1では、デフォルトでnchar(NA) ## [1] NA'と設定されています:[nchar RDocumentation](https: /www.rdocumentation.org/packages/base/versions/3.3.1/topics/nchar) –
の問題を回避します最後の要素を返す無名関数を使用して |ベクトルc(8,4,0)。あなたの無名関数は1つの引数を取るべきです。 |変数xとする。 – uxi