R言語の四則演算をまとめました。
この記事ではスカラー、ベクトル、行列の計算に用いる演算子を解説しています。
和差積商だけでなく、内積や外積などのベクトルや行列の演算子も紹介しています。
この記事で扱うプログラミングコードは以下からダウンロードできます。
論理演算や代入演算については以下の記事を参照してください。
【R言語】論理演算子・比較演算子
R言語の論理演算と比較演算をまとめました。 この記事では論理和や論理積などの論理演算と、等号や不等号などの比較演算に用いる演算子を紹介します。 この記事で扱うプログラミングコードは以下からダウンロード ...
続きを見る
算術演算子
R言語の算術演算子は、和差積商の四則演算だけでなく内積や外積などのベクトルや行列に関する演算子もあります。
内積や外積、クロネッカー積などのベクトル・行列用の算術演算子が標準で扱えるのが特殊な点です。
演算子は以下の通りです。
+ | 和 |
- | 差 |
* | 積 |
/ | 商 |
^ | べき乗 |
%/% | 整数商 |
%% | 剰余 |
%*% | 内積、行列の積 |
%o% | 外積 |
%x% | クロネッカー積 |
実行例
R言語の算術演算子の使い方について見ていきます。
スカラー、ベクトル、行列について解説していきます。
スカラー
最初にスカラーに関する算術演算を紹介します。
演算を行いたいオブジェクトの間に演算子を置くことで算術演算を行うことができます。
+と-に関しては、オブジェクトの手前に置くことで符号として扱うことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | #スカラー x <- 2 y <- 3 + x #符号 - x #符号 x + y #和 x - y #差 x * y #積 x / y #商 x ^ y #べき乗 x %/% y #整数商 x %% y #剰余 |
それぞれの計算結果は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | > + x #符号 [1] 3 > > - x #符号 [1] -3 > > x + y #和 [1] 5 > > x - y #差 [1] 1 > > x * y #積 [1] 6 > > x / y #商 [1] 1.5 > > x ^ y #べき乗 [1] 9 > > x %/% y #整数商 [1] 1 > > x %% y #剰余 [1] 1 |
ベクトル
スカラーと同様にベクトルの計算が可能です。
ベクトルとスカラー同士の計算も可能で、ベクトルのすべての要素とスカラー間の演算が行われます。
ベクトル間の演算は次のように行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #ベクトル x <- rep(5, 5) y <- seq(5) + x #符号 - x #符号 x + y #和 x - y #差 x * y #積 x / y #商 x ^ y #べき乗 x %/% y #整数商 x %% y #剰余 x %*% y #内積 x %o% y #外積 x %x% y #クロネッカー積 |
上記の演算の結果は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | > + x #符号 [1] 5 5 5 5 5 > > - x #符号 [1] -5 -5 -5 -5 -5 > > x + y #和 [1] 6 7 8 9 10 > > x - y #差 [1] 4 3 2 1 0 > > x * y #積 [1] 5 10 15 20 25 > > x / y #商 [1] 5.000000 2.500000 1.666667 1.250000 1.000000 > > x ^ y #べき乗 [1] 5 25 125 625 3125 > > x %/% y #整数商 [1] 5 2 1 1 1 > > x %% y #剰余 [1] 0 1 2 1 0 > > x %*% y #内積 [,1] [1,] 75 > > x %o% y #外積 [,1] [,2] [,3] [,4] [,5] [1,] 5 10 15 20 25 [2,] 5 10 15 20 25 [3,] 5 10 15 20 25 [4,] 5 10 15 20 25 [5,] 5 10 15 20 25 > > x %x% y #クロネッカー積 [1] 5 10 15 20 25 5 10 15 20 25 5 10 15 20 25 5 10 15 20 25 5 10 15 20 25 |
また、ベクトルとスカラー間の演算例は次の通りです。
1 2 3 4 5 6 7 8 9 10 | x <- rep(5, 5) z <- 2 x + z #和 x - z #差 x * z #積 x / z #商 x ^ z #べき乗 x %/% z #整数商 x %% z #剰余 |
ベクトルとスカラー間の演算は次のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | > x + z #和 [1] 7 7 7 7 7 > > x - z #差 [1] 3 3 3 3 3 > > x * z #積 [1] 10 10 10 10 10 > > x / z #商 [1] 2.5 2.5 2.5 2.5 2.5 > > x ^ z #べき乗 [1] 25 25 25 25 25 > > x %/% z #整数商 [1] 2 2 2 2 2 |
行列
行列の算術演算を以下にまとめました。
演算子「*」は2つの行列の対応する要素同士の積(アダマール積)となり、行列の積を計算したい場合は「%*%」を使用することに注意が必要です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | X <- matrix(c(2, 3, 3, 2), nrow = 2) Y <- matrix(c(1, 2, 2, 1), nrow = 2) + X #符号 - X #符号 X + Y #和 X - Y #差 X * Y #積(アダマール積) X / Y #商 X ^ Y #べき乗 X %% Y #整数商 X %/% Y #剰余 X %*% Y #行列の積 X %x% Y #クロネッカー積 |
上記の行列同士の計算結果は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | > + X #符号 [,1] [,2] [1,] 2 3 [2,] 3 2 > > - X #符号 [,1] [,2] [1,] -2 -3 [2,] -3 -2 > > X + Y #和 [,1] [,2] [1,] 3 5 [2,] 5 3 > > X - Y #差 [,1] [,2] [1,] 1 1 [2,] 1 1 > > X * Y #積(アダマール積) [,1] [,2] [1,] 2 6 [2,] 6 2 > > X / Y #商 [,1] [,2] [1,] 2.0 1.5 [2,] 1.5 2.0 > > X ^ Y #べき乗 [,1] [,2] [1,] 2 9 [2,] 9 2 > > X %% Y #整数商 [,1] [,2] [1,] 0 1 [2,] 1 0 > > X %/% Y #剰余 [,1] [,2] [1,] 2 1 [2,] 1 2 > > X %*% Y #行列の積 [,1] [,2] [1,] 8 7 [2,] 7 8 > > X %x% Y #クロネッカー積 [,1] [,2] [,3] [,4] [1,] 2 4 3 6 [2,] 4 2 6 3 [3,] 3 6 2 4 [4,] 6 3 4 2 |
また、次のように行列とベクトル同士の演算も行うことができます。
1 2 3 4 5 | X <- matrix(c(2, 3, 3, 2), nrow = 2) x <- rep(2, 2) X %*% x #行列の積 X %x% x #クロネッカー積 |
計算結果は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 | > X %*% x #行列の積 [,1] [1,] 10 [2,] 10 > > X %x% x #クロネッカー積 [,1] [,2] [1,] 4 6 [2,] 4 6 [3,] 6 4 [4,] 6 4 |
ベクトルの演算の時と同様に、行列とスカラー間の演算も可能であり、行列の各要素とスカラー間の演算を行います。
1 2 3 4 5 6 7 | X + z #和 X - z #差 X * z #積(アダマール積) X / z #商 X ^ z #べき乗 X %% z #整数商 X %/% z #剰余 |
計算結果は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | > X + z #和 [,1] [,2] [1,] 4 5 [2,] 5 4 > > X - z #差 [,1] [,2] [1,] 0 1 [2,] 1 0 > > X * z #積(アダマール積) [,1] [,2] [1,] 4 6 [2,] 6 4 > > X / z #商 [,1] [,2] [1,] 1.0 1.5 [2,] 1.5 1.0 > > X ^ z #べき乗 [,1] [,2] [1,] 4 9 [2,] 9 4 > > X %% z #整数商 [,1] [,2] [1,] 0 1 [2,] 1 0 > > X %/% z #剰余 [,1] [,2] [1,] 1 1 [2,] 1 1 |
まとめ
R言語の算術演算子と演算の例を紹介しました。
Rには四則演算やべき乗などの演算子だけでなく、ベクトルや行列に関する演算子も標準で実装されています。