[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]同じ文字列を繰り返した文字列を作成する(2026.02.02)
- [R]文字列が数値に変換できるかどうか判定する(2025.12.31)
- [R]文字列の長さを得る(2025.12.30)
- [R]空白を追加した指定の長さの文字列を得る(2025.12.26)
- [R]文字列型ベクトルの要素を連結して文字列を作る(2025.12.17)

コメント