English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R 基本演算

この章ではR言語の簡単な演算を紹介します。

代入

一般的な言語の代入演算は = シンボル、しかしR言語は数学の言語であり、従って代入演算子は数学の教科書の仮コードと非常に似ており、左向きの<アローグラフです- :

a <- 123
b <- 456
print(a + b)

以下のコードの実行結果:

[1] 579

この代入演算子はR言語の形式上の利点と操作上の欠点です:形式上は数学者に適していますが、すべての数学者は使用に慣れていません = 代入演算子として使用されます。

操作において、<シンボルと - シンボルはすべて簡単に打ち込めないキャラクターであり、これにより多くのプログラマーが不適応します。したがって、R言語の比較的新しいバージョンでは = を代入演算子としてサポートしています:

a = 123
b = 456
print(a + b)

これは合法なRのプログラムです。

注意:Rのどのバージョンからサポートされたかは難しいです = 代入演算ですが、このチュートリアルで使用するRのバージョンでは 4.0.0。

数学演算子

以下の表に主要な数学演算子とその演算順序が示されています:

優先順位記号意味
1()括弧
2^乗方演算
3%%整数除法の余り
 %/%整数除法
4*乗法
 /除法
5+加法
 -減法

以下の例は、シンプルな数学演算を示しています:

> 1 + 2 * 3
[1] 7
> (1 + 2) * 3
[1] 9
> 3 / 4
[1] 0.75
> 3.4 - 1.2
[1] 2.2
> 1 - 4 * 0.5^3
[1] 0.5
> 8 / 3 %% 2
[1] 8
> 8 / 4 %% 2
[1Inf
> 3 %% 2^2
[1] 3
> 10 / 3 %/% 2
[1] 10

関係演算子

以下の表は、R言語がサポートする関係演算子を示しており、関係演算子は2つのベクトルを比較し、第1ベクトルの各要素と第2ベクトルの各要素を比較し、結果として布尔値を返します。

演算子説明
>第1ベクトルの各要素が第2ベクトルの対応する要素より大きいかどうかを判断します。
<第1ベクトルの各要素が第2ベクトルの対応する要素より小さいかどうかを判断します。
==第1ベクトルの各要素が第2ベクトルの対応する要素と同じかどうかを判断します。
!=第1ベクトルの各要素が第2ベクトルの対応する要素と異なるかどうかを判断します。
>=第1ベクトルの各要素が第2ベクトルの対応する要素より大きいかどうかを判断します。
<=第1ベクトルの各要素が第2ベクトルの対応する要素より小さいかどうかを判断します。
v <- c(2,4,6,9)
t <- c(1,4,7,9)
print(v>t)
print(v < t)
print(v == t)
print(v!=t)
print(v>=t)
print(v<=t)

以上のコードを実行すると、出力結果が:

[1TRUE FALSE FALSE FALSE
[1FALSE FALSE TRUE FALSE
[1FALSE TRUE FALSE TRUE
[1TRUE FALSE TRUE FALSE
[1]  TRUE  TRUE FALSE  TRUE
[1FALSE TRUE TRUE TRUE

論理演算子

以下の表は、R言語がサポートする論理演算子を示しており、数字、論理、複素数のベクトルに使用できます。

より大きい 1 の数字がすべてTRUEです。

論理演算子は2つのベクトルを比較し、第1ベクトルの各要素と第2ベクトルの各要素を比較し、結果として布尔値を返します。

演算子説明
&要素論理与演算子は、第1ベクトルの各要素を第2ベクトルの対応する要素と組み合わせます。2つの要素がすべてTRUEの場合、結果がTRUE、それ以外の場合FALSEとなります。
要素論理或演算子は、第1ベクトルの各要素を第2ベクトルの対応する要素と組み合わせます。2つの要素のうち1つがTRUEの場合、結果がTRUE、2つがFALSEの場合FALSEを返します。
!論理否定演算子は、ベクトルの各要素の逆の論理値を返します。要素がTRUEの場合FALSEを、要素がFALSEの場合TRUEを返します。
&&論理演算子は、2つのベクトルの第1要素のみを判断し、2つの要素がすべてTRUEの場合、結果がTRUE、それ以外の場合FALSEとなります。
||論理和演算子、2つのベクトルの最初の要素に対してのみ判断を行い、2つの要素のうち1つがTRUEの場合TRUE、どちらもFALSEの場合FALSEを返します。
v <- c(3,1,TRUE,2+3i)
t <- c(4,1,FALSE,2+3i)
print(v&t)
print(v|t)
print(!v)
# &&、||は最初の要素に対してのみ比較します
v <- c(3,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v&&t)
v <- c(0,0,TRUE,2+2i)
t <- c(0,3,TRUE,2+3i)
print(v||t)

以上のコードを実行すると、出力結果が:

[1]  TRUE  TRUE FALSE  TRUE
[1] TRUE TRUE TRUE TRUE
[1] FALSE FALSE FALSE FALSE
[1] TRUE
[1] FALSE

代入演算子

R言語の変数は左辺値、右辺値または等号演算子を使用して代入できます。

以下の表にR言語がサポートする代入演算子が示されています。

演算子説明

<−

=

<<−

左辺値代入。

−>

−>>

右辺値代入。
# 左辺値代入
v1 <- c(3,1,TRUE,"w3codebox")
v2 <<- c(3,1,TRUE,"w3codebox")
v3 = c(3,1,TRUE,"w3codebox")
print(v1)
print(v2)
print(v3)
# 右辺値代入
c(3,1,TRUE,"w3codebox") -> v1
c(3,1,TRUE,"w3codebox") ->> v2 
print(v1)
print(v2)

以上のコードを実行すると、出力結果が:

[1] "3"      "1"      "TRUE"   "w3codebox"
[1] "3"      "1"      "TRUE"   "w3codebox"
[1] "3"      "1"      "TRUE"   "w3codebox"
[1] "3"      "1"      "TRUE"   "w3codebox"
[1] "3"      "1"      "TRUE"   "w3codebox"

他の演算子

R言語には特別な演算子がいくつか含まれています。

演算子説明
:コロン演算子、一連の数字のベクトルを作成するために使用されます。
%in%要素がベクトルに含まれているかどうかを判定し、ブール値を返します。含まれている場合TRUE、含まれていない場合FALSEを返します。
%*%行列とその転置行列を乗算するために使用されます。
# 1 から 10 のベクトル
v <- 1:10
print(v) 
# 数字がベクトル v に含まれているかどうかを判定
v1 <- 3
v2 <- 15
print(v1 %in% v) 
print(v2 %in% v) 
# 行列とその転置行列を乗算
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

以上のコードを実行すると、出力結果が:

[1]  1  2  3  4  5  6  7  8  9 10
[1] TRUE
[1] FALSE
     [,1] [,2]
[1,]   65   82
[2,]   82  117

数学関数

一般的に数学関数に対してよく用いられる:

関数説明
sqrt(n)nの平方根
exp(n)自然対数eのn乗、
log(m,n)mの対数関数、nの何乗がmに等しいかを返します
log10(m)相当于log(m,10)

以下示例演示了数学函数的应用:

> sqrt(4)
[1] 2
> exp(1)
[1] 2.718282
> exp(2)
[1] 7.389056
> log(2,4)
[1] 0.5
> log10(10000)
[1] 4

取整関数:

名前パラメータモデル意味
round(n)nを四捨五入します
 (n, m)nに対してm桁まで四捨五入します
ceiling(n)nに対して小数点以下を切り上げます
floor(n)nに対して小数点以下を切り捨てます

)

> round(1.5)
[1] 2
> round(2.5)
[1] 2
> round(3.5)
[1] 4
> round(4.5)
[1] 4

注意:Rのround関数は場合によっては「5を切り捨てる」ことがあります。

整数部分が偶数の場合、5は切り捨てられます。これはC言語とは異なります。

Rの三角関数はラジアンで指定されます:

> sin(pi/6)
[1] 0.5
> cos(pi/4)
[1] 0.7071068
> tan(pi/3)
[1] 1.732051

逆三角関数:

> asin(0.5)
[1] 0.5235988
> acos(0.7071068)
[1] 0.7853981
> atan(1.732051)
[1] 1.047198

確率論と統計学を学んだことがあれば、以下の確率分布関数は比較的馴染みがあるでしょう。なぜなら、R 言語は数学者向けに設計されているため、頻繁に使用されます:

> dnorm(0)
[1] 0.3989423
> pnorm(0)
[1] 0.5
> qnorm(0.95)
[1] 1.644854
> rnorm(3, 5, 2) # 生成 3 の平均値が 5、標準偏差が 2 の正規分布のランダム数
[1] 4.177589 6.413927 4.206032

これら4つはすべて正規分布を計算するために使用されます。名前はすべて norm で終わりますが、これは「正規分布」を意味します。

分布関数の名前の接頭辞は以下の4種類があります:

  • d - 確率密度関数

  • p - 確率密度積分関数(無限小から x までの積分)

  • q - 分位数関数

  • r - ランダム数関数(通常は確率シミュレーションに使用されます)

:このチュートリアルは数学の専門理論を説明するものではないため、確率分布に関する数学の理論は詳細に説明しておりません。R 言語は正規分布の関数に加えて、ポアソン分布(pois、Poisson)などの一般的な分布関数を含んでいます。詳細を学びたい場合は、「確率論と数理統計」を学ぶことができます。