R言語の演算子について解説します。
演算子とは、ある操作を短縮した記号で表したものになります。

主な演算子一覧

R言語の主な演算子の一覧は次になります。

算術演算子

算術演算子は2つの数値から1つの数値を得るために使用する、一般的な数学演算です。

演算子 説明
+ 足し算 x + y
引き算 x – y
* 掛け算 x * y
/ 割り算 x / y
^ べき乗 x ^ y
%/% 整数の割り算の商 x %/% y
%% 整数の割り算の余り x %% y

代入演算子

代入演算子は変数に値を割り当てるために使用します。

演算子 説明
<- 左側に代入 x <- value
<<- 左側に永続代入 x <<- value
-> 右側に代入 value -> x
->> 右側に永続代入 value ->> x
= 左側に代入 x = value

比較演算子

比較演算子は2つの値を比較し、比較結果をLogical(真偽値)として得るために使用します。

演算子 説明
== 左側と右側の値が等しいかを判定 x == y
!= 左側と右側の値が等しくないかを判定 x != y
> 左側が右側より大きいかを判定 x > y
>= 左側が右側以上かを判定 x >= y
< 左側が右側より小さいかを判定 x < y
<= 左側が右側以下かを判定 x <= y

論理演算子

論理演算子は2つの真偽値から1つの真偽値を得るために使用します。

演算子 説明
& 左側と右側の真偽値が両方ともTRUEならばTRUE、左側と右側の真偽値のどちらか一方がFALSEならばFALSEを得る x & y
&& 左側と右側の真偽値が両方ともTRUEならばTRUE、左側と右側の真偽値のどちらか一方がFALSEならばFALSEを得る
ただし、左側の真偽値がFALSEならば右側は評価されない
x && y
| 左側と右側の真偽値のどちらか一方がTRUEならばTRUE、左側と右側の真偽値が両方ともFALSEならばFALSEを得る x & y
|| 左側と右側の真偽値のどちらか一方がTRUEならばTRUE、左側と右側の真偽値が両方ともFALSEならばFALSEを得る
ただし、左側の真偽値がTRUEならば右側は評価されない
x || y
! TRUEならばFALSE、FALSEならばTRUEを得る !x

その他の演算子

その他の有用な演算子は次になります。

演算子 説明
: 連番の整数をもつベクトルを得る 1:10
%in% 左側の要素が右側のベクトルに属しているかを判定し真偽値を得る x %in% vector
%*% 行列の掛け算 x %*% y
|> 左側を右側の関数の最初の引数に挿入 1:10 |> sum()

算術演算子

算術演算子は2つの数値から1つの数値を得るために使用する、一般的な数学演算です。

+演算子

+演算子は足し算を実行します。


1 + 2
(out)[1] 3
1 + c(2, 3)
(out)[1] 3 4
c(1, 2) + c(2, 3)
(out)[1] 3 5
1 + matrix(c(2, 3, 4, 5), nrow = 2)
(out)     [,1] [,2]
(out)[1,]    3    5
(out)[2,]    4    6
matrix(c(1, 2, 3, 4), nrow = 2) + matrix(c(2, 3, 4, 5), nrow = 2)
(out)     [,1] [,2]
(out)[1,]    3    7
(out)[2,]    5    9

-演算子

-演算子は引き算を実行します。


3 - 2
(out)[1] 1
1 - c(2, 3)
(out)[1] -1 -2
c(1, 2) - c(2, 3)
(out)[1] -1 -1
1 - matrix(c(2, 3, 4, 5), nrow = 2)
(out)     [,1] [,2]
(out)[1,]   -1   -3
(out)[2,]   -2   -4
matrix(c(2, 3, 4, 5), nrow = 2) - matrix(c(1, 2, 3, 4), nrow = 2)
(out)     [,1] [,2]
(out)[1,]    1    1
(out)[2,]    1    1

*演算子

*演算子は掛け算を実行します。


2 * 3
(out)[1] 6
2 * c(2, 3)
(out)[1] 4 6
c(1, 2) * c(2, 3)
(out)[1] 2 6
2 * matrix(c(1, 2, 3, 4), nrow = 2)
(out)     [,1] [,2]
(out)[1,]    2    6
(out)[2,]    4    8
matrix(c(1, 2, 3, 4), nrow = 2) *  matrix(c(2, 3, 4, 5), nrow = 2)
(out)     [,1] [,2]
(out)[1,]    2   12
(out)[2,]    6   20

/演算子

/演算子は割り算を実行します。


1 / 2
(out)[1] 0.5
1 / c(1, 2)
(out)[1] 1.0 0.5
c(1, 2) /  c(2, 3, 3)
(out)[1] 0.5000000 0.6666667 0.3333333
1 / matrix(c(2, 3, 4, 5), nrow = 2)
(out)          [,1] [,2]
(out)[1,] 0.5000000 0.25
(out)[2,] 0.3333333 0.20
matrix(c(1, 2, 3, 4), nrow = 2) / matrix(c(2, 3, 4, 5), nrow = 2)
(out)          [,1] [,2]
(out)[1,] 0.5000000 0.75
(out)[2,] 0.6666667 0.80

^演算子

^演算子はべき乗を計算します。


2^3
(out)[1] 8
2 ^ c(2, 3)
(out)[1] 4 8
c(2, 3) ^ 2
(out)[1] 4 9
c(2, 3) ^ c(3, 4)
(out)[1]  8 81
matrix(c(1, 2, 3, 4), nrow = 2) ^ 2
(out)     [,1] [,2]
(out)[1,]    1    9
(out)[2,]    4   16
2 ^ matrix(c(1, 2, 3, 4), nrow = 2)
(out)     [,1] [,2]
(out)[1,]    2    8
(out)[2,]    4   16
matrix(c(1, 2, 3, 4), nrow = 2) ^ matrix(c(2, 3, 4, 5), nrow = 2)
(out)     [,1] [,2]
(out)[1,]    1   81
(out)[2,]    8 1024

%/%演算子

%/%演算子は整数の割り算の商を計算します。


7 %/% 3
(out)[1] 2
-7 %/% 3
(out)[1] -3
7 %/% -3
(out)[1] -3
-7 %/% -3
(out)[1] 2

%%演算子

%/%演算子は整数の割り算の余りを計算します。


7 %% 3
(out)[1] 1
-7 %% 3
(out)[1] 2
7 %% -3
(out)[1] -2
-7 %% -3
(out)[1] -1

代入演算子

<-演算子

<-演算子は左側に右側を代入します。


x <- 3
x
(out)[1] 3

<<-演算子

<-演算子は左側に右側を永続代入します。


x <<- 3
x
(out)[1] 3

->演算子

->演算子は左側を右側に代入します。


3 -> x
x
(out)[1] 3

->>演算子

->演算子は左側を右側に永続代入します。


3 ->> x
x
(out)[1] 3

=演算子

=演算子は左側に右側を永続代入します。R言語以外のプログラミング言語では、この=演算子で代入を行うことが一般的ですが、R言語においては=演算子よりも<-演算子の方が好まれます。


x = 3
x
(out)[1] 3

比較演算子

==演算子

==演算子は左側と右側の値が等しいかを判定し、結果を真偽値で返します。


1 == 1
(out)[1] TRUE
1 == 2
(out)[1] FALSE

!=演算子

!=演算子は左側と右側の値が等しくないかを判定し、結果を真偽値で返します。


1 != 1
(out)[1] FALSE
1 != 2
(out)[1] TRUE

>演算子

>演算子は左側が右側より大きいかを判定し、結果を真偽値で返します。


2 > 1
(out)[1] TRUE
2 > 2
(out)[1] FALSE

>=演算子

>=演算子は左側が右側以上かを判定し、結果を真偽値で返します。


2 >= 1
(out)[1] TRUE
2 >= 2
(out)[1] TRUE
2 >= 3
(out)[1] FALSE

<演算子

<演算子は左側が右側より小さいかを判定し、結果を真偽値で返します。


1 < 2
(out)[1] TRUE
2 < 2
(out)[1] FALSE

<=演算子

<=演算子は左側が右側以下かを判定し、結果を真偽値で返します。


1 <= 2
(out)[1] TRUE
2 <= 2
(out)[1] TRUE
3 <= 2
(out)[1] FALSE

論理演算子

論理演算子は2つの真偽値から1つの真偽値を得るために使用します。

&演算子

&演算子は左側と右側の真偽値が両方ともTRUEならばTRUE、左側と右側の真偽値のどちらか一方がFALSEならばFALSEを返します。


TRUE & TRUE
(out)[1] TRUE
FALSE & TRUE
(out)[1] FALSE
TRUE & FALSE
(out)[1] FALSE
FALSE & FALSE
(out)[1] FALSE

&&演算子

&&演算子は左側と右側の真偽値が両方ともTRUEならばTRUE、左側と右側の真偽値のどちらか一方がFALSEならばFALSEを返します。ただし、左側の真偽値がFALSEならば右側は評価されません。


TRUE && TRUE
(out)[1] TRUE
FALSE && TRUE
(out)[1] FALSE
TRUE && FALSE
(out)[1] FALSE
FALSE && FALSE
(out)[1] FALSE

|演算子

|演算子は左側と右側の真偽値のどちらか一方がTRUEならばTRUE、左側と右側の真偽値が両方ともFALSEならばFALSEを返します。


TRUE | TRUE
(out)[1] TRUE
FALSE | TRUE
(out)[1] TRUE
TRUE | FALSE
(out)[1] TRUE
FALSE | FALSE
(out)[1] FALSE

||演算子

||演算子は左側と右側の真偽値のどちらか一方がTRUEならばTRUE、左側と右側の真偽値が両方ともFALSEならばFALSEを返します。ただし、左側の真偽値がTRUEならば右側は評価されません。


TRUE || TRUE
(out)[1] TRUE
FALSE || TRUE
(out)[1] TRUE
TRUE || FALSE
(out)[1] TRUE
FALSE || FALSE
(out)[1] FALSE

!演算子

!演算子はTRUEならばFALSE、FALSEならばTRUEを返します。


!TRUE
(out)[1] FALSE
!FALSE
(out)[1] TRUE

その他の演算子

その他の有用な演算子は次になります。

:演算子

:演算子は連番の整数をもつベクトルを返します。


1:10
(out) [1]  1  2  3  4  5  6  7  8  9 10
-10:0
(out) [1] -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0
-5:5
(out) [1] -5 -4 -3 -2 -1  0  1  2  3  4  5

%in%演算子

%in%演算子は左側の要素が右側のベクトルに属しているかを判定し真偽値を返します。


5 %in% 1:10
(out)[1] TRUE
13 %in% 1:10
(out)[1] FALSE
1:3 %in% 1:10
(out)[1] TRUE TRUE TRUE
-2:1 %in% 1:10
(out)[1] FALSE FALSE FALSE  TRUE

%*%演算子

%*%演算子は行列の掛け算を実行します。


c(1, 2) %*% c(3, 4)
(out)     [,1]
(out)[1,]   11
matrix(c(1, 2, 3, 4), nrow = 2) %*% matrix(c(5, 6, 7, 8), nrow = 2)
(out)     [,1] [,2]
(out)[1,]   23   31
(out)[2,]   34   46

|>演算子

|>演算子は左側を右側の関数の最初の引数に挿入します。この|>演算子はR4.1から導入されました。|>演算子はtidyverseパッケージにも含まれているmagrittrパッケージを利用すると使える%>%演算子と同じ挙動となります。


1:10 |> sum()
(out)[1] 55
R入門 演算子