まくまくRノート
ベクトルに対する算術演算を行う
2014-12-08

ベクトルに対してスカラ値の算術演算を行うと、各要素に対して演算が行われます。 結果的に、元のベクトルと同じ数の要素のベクトルが作成されます。

> x <- c(1, 2, 3)
> x + 100
[1] 101 102 103

> x - 100
[1] -99 -98 -97

> x * 100
[1] 100 200 300

> x / 100
[1] 0.01 0.02 0.03

> x ^ 2
[1] 1, 4, 9

スカラ値に作用する算術系関数をベクトルに適用した場合も、ほぼ同様の振る舞いをします。下記の例では、ベクトルの各要素に対して log10() を適用しています。

> x <- c(1, 10, 100, 1000)
> log10(x)
[1] 0 1 2 3

この性質を利用して、下記の様に x 軸のベクトルデータから、y 軸のベクトルデータを作成するという使い方ができます。

例: y = x^2 のグラフを表示

x <- 1:5    # 1~5 までの連番データを生成 (1, 2, 3, 4, 5)
y = x^2     # 各要素の二乗からなるデータを生成 (1, 4, 9, 16, 25)
plot(x, y)  # 二次元グラフとしてプロット

この例では y というオブジェクトを作成していますが、プロット系の関数に渡す時に直接データ生成してしまうこともできます。

plot(x, x^2)

他にもいろいろな演算や関数を組み合わせてデータを生成することができます。

plot(x, 1+sqrt(x))
2014-12-08