ベクトルに対してスカラ値の算術演算を行うと、各要素に対して演算が行われます。 結果的に、元のベクトルと同じ数の要素のベクトルが作成されます。
> 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 軸のベクトルデータを作成するという使い方ができます。
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))