« 2018年10月 | トップページ | 2018年12月 »

2018年11月30日 (金)

[R]文字列の文字コードをUTF-8に変換する

enc2utf8関数は、引数に指定した文字列の文字コードをUTF-8に変換する。

> charToRaw("あ亜")
[1] 82 a0 88 9f
> charToRaw(enc2utf8("あ亜"))
[1] e3 81 82 e4 ba 9c

上記はWindowsのRで文字コードで確認をした例。WindowsのRでは、日本語コードは初期状態ではシフトJIS。「あ」はシフトJISでは0x82a0、UTF-8では0xe38182。「亜」はシフトJISでは0x889f、UTF-8では0xe4ba9cである。

2018年11月28日 (水)

[R]文字列の文字コードを確認する

charToRaw関数を使う。

> charToRaw("ABC")
[1] 41 42 43
> charToRaw("あいう亜位右")
[1] 82 a0 82 a2 82 a4 88 9f 88 ca 89 45

上記は、WindowsのRで実行した例。「A」はアスキーコードで0x41。日本語は、Windows環境の日本語コードはシフトJISであり、シフトJISでは「あ」は16進法表記で82A0(0x82a0)、「亜」は889F(0x889f)であり、そのように出力されているのが確認できる。

> charToRaw("あいう亜位右")
[1] e3 81 82 e3 81 84 e3 81 86 e4 ba 9c e4 bd 8d e5 8f b3

上記はUTF-8のLinuxのRで実行した例。

2018年11月27日 (火)

[R]数値ベクトルを作成する

数値定数(0~9)を組み合わせて使用してc関数を使用する。

> d1 <- c(1.23, 4.56)
> d1
[1] 1.23 4.56

他のプログラミング言語でいうところの数値型変数(Rでは長さが1のベクトル)を作成するには、直接代入しても作成することができる。

> d2 <- 7.89
> d2
[1] 7.89

Rでは初期状態では10進法表記で数値を指定する。数値定数の前に「0x」(零とエックス)を付けると、16進法表記で数値を指定することができる。

> d3 <- 0x20
> d3
[1] 32

上記は、16進法表記で20(10進法表記では32)を代入して数値ベクトルを作成した例。

[R]読み込んだ画像ファイルの大きさや色数を調べる

dim関数を使う。

> img <- readPNG(system.file("img", "Rlogo.png", package = "png"))
> dim(img)
[1]  76 100   4

これは、読み込んだ画像ファイル Rlogo.png は、高さが76ピクセル、幅が100ピクセル、色数は4バイト(32ビット)ということ。

2018年11月 5日 (月)

[R]plot関数で図の描画する際の図の縦横比を指定する

plot関数で図を描画すると、初期状態では、縦横比が1で描画される(縦軸と横軸のスケールを等しくして描画するということ)。ただし、表示された図のウィンドウを、マウスなどで変形させると、それに応じて縦横比が変化する。

plot関数で特に何もしてせずにプロットする。

> x <- c(0, 1, 2, 3, 4)
> y <- c(0, 1, 2, 3, 4)
> plot(x, y)

Figure01 横軸と縦軸は元の値に対して同じ倍率で描画される。この図が描画されているウィンドウを、マウスを使って横長に変形するとこのようになる。
Figure02 横軸も縦軸も描画範囲は同じ(0~4)で、横軸は縦軸と比べて元の値に対して倍率が大きくなってしまっている。
plot関数のaspオプションはこれを指定することができる。aspオプションに1を指定すると、横軸と縦軸の描画倍率を1にする。

> plot(x, y, asp = 1)

Figure03 とくに何も指定しないと、横軸も縦軸も同じ倍率で描画されるが、上記と同様に、マウスを使用して、図が描画されているウィンドウを横長に変形してみる。
Figure04 横軸と縦軸の元の値に対する倍率は揃ったままに、横軸の描画範囲が広がっただけとなっている。
このaspオプションは「横軸の倍率/縦軸の倍率」の値で指定をする。例えば、同じ値に対して、縦軸の描画を2倍にするのであれば、aspオプションに「2/1」(= 2)を指定すればよい。

> plot(x, y, asp = 2 / 1)

Figure05_2

2018年11月 2日 (金)

[R]文字列から一部の文字を抜き出す

substr関数を使用する。元の文字列、抜き出す開始位置(1~)、抜き出す終了位置、を指定する。

> st <- c("ABCDE", "あいうえお")
> substr(st, start = 2, stop = 4)
[1] "BCD"    "いうえ"
> substr(st, start = 2, stop = 10)
[1] "BCDE"     "いうえお"
> substr(st, start = 8, stop = 10)
[1] "" ""
> substr(st, 3, 5)
[1] "CDE"    "うえお"

元の文字列にはベクトルを指定することができる。また、開始位置と終了位置のオプションの指定はオプションの指定を省略することもできる。
いわゆる全角文字(「A」、「0」、「あ」、「亜」など)は半角文字(「A」や「0」)と同じで1文字として扱われる。

似たような機能を持つsubstring関数があるが、こちらはS言語との互換性のために用意されているものであり、使用は推奨しない(ここでも用途を示さない)。

« 2018年10月 | トップページ | 2018年12月 »

無料ブログはココログ

■■

■■■