[R]文字の文字コードを数値で得る
charToRaw関数で文字列ロウ型に変換し、それをas.integer関数で数値型に変換することで得られる。得られた文字コードの数値の値は、as.raw関数でロウ型に変換し、rawToChar関数で文字型に変換することで文字に戻すことができる。以下は、文字「A」(0x41)を数値型に変換し、その値に1を足して文字の「B」(0x42)を得た例。
> r <- charToRaw("A")
> r
[1] 41
> n <- as.integer(r)
> n
[1] 65
> rawToChar(as.raw(65 + 1))
[1] "B"
当然、文字列にもそのまま使うことができる。
> n <- as.integer(charToRaw("ABCabc"))
> n
[1] 65 66 67 97 98 99
> rawToChar(as.raw(n + 1))
[1] "BCDbcd"
日本語文字にも使える。「阿」、「伊」はそれぞれシフトJISで0x88a2、0x88c9。charToRaw関数の戻り値はロウ型であることに注意。
> Sys.getlocale()
[1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"
> s <- c("A", "ab", "あい", "阿伊123")
> for (i in 1:length(s)) print(charToRaw(s[i]))
[1] 41
[1] 61 62
[1] 82 a0 82 a2
[1] 88 a2 88 c9 31 32 33
> for (i in 1:length(s)) print(as.integer(charToRaw(s[i])))
[1] 65
[1] 97 98
[1] 130 160 130 162
[1] 136 162 136 201 49 50 51
« [R]日付からその日の曜日を得る | トップページ | [R]正規表現を使用して文字列の置き換えを行う »
「R(文字と文字列)」カテゴリの記事
- [R]同じ文字列を繰り返した文字列を作成する(2026.02.02)
- [R]文字列が数値に変換できるかどうか判定する(2025.12.31)
- [R]文字列の長さを得る(2025.12.30)
- [R]空白を追加した指定の長さの文字列を得る(2025.12.26)
- [R]文字列型ベクトルの要素を連結して文字列を作る(2025.12.17)

コメント