« [R]文字列を連結する | トップページ | [Python]行列を作る »

2022年7月 3日 (日)

[R]文字列の長さを調べる

nchar関数を使う。typeオプションに指定したいずれかの値で結果が変わる。なお、以下はWindows版で実行している。

bytes…バイト数
chars…文字の個数
width…画面表示される文字の幅(いわゆる半角は1、全角は2)

> s <- c("ABC", "あいう", "阿伊宇abc")
> nchar(s, type = "bytes")
[1] 3 6 9
> nchar(s, type = "chars")
[1] 3 3 6
> nchar(s, type = "width")
[1] 3 6 9

bytesとwidthは同じに見えるが、それはWindows環境下では日本語文字が1文字当たり2バイトだからであり、例えばutf-8(1文字3バイト)であれば以下のようになる。Windows環境下であるので一部は動作しない。

> s <- iconv("あ亜", from = "CP932", to = "utf-8")
> charToRaw(s)
[1] e3 81 82 e4 ba 9c
> nchar(s, type = "bytes")
[1] 6
> nchar(s, type = "chars")
nchar(s, type = "chars") でエラー: invalid multibyte string, element 1
> nchar(s, type = "width")
[1] NA

« [R]文字列を連結する | トップページ | [Python]行列を作る »

R(文字と文字列)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]文字列を連結する | トップページ | [Python]行列を作る »

無料ブログはココログ

■■

■■■