【R】基本的な計算
Rでの基本的な計算をする方法をまとめていきます。
基本的な四則計算
足し算
足し算は + を使います。
> 1+2 [1] 3
引き算
引き算は - を使います。
> 2-1 [1] 1
かけ算
かけ算は * を使います。
> 2*3 [1] 6
割り算
割り算は / を使います。
> 3/2 [1] 1.5
その他の基本計算
累乗
累乗は ** または ^ を使います。2**3(2^3) は 2の3乗 になります。
> 2**3 [1] 8 > 2^3 [1] 8
余りのある割り算を行った際の整数の商
余りのある割り算を行った際の整数の商を求めるには %/% を使います。
> 10%/%3 [1] 3
余りのある割り算を行った際の余り(剰余)
余りのある割り算を行った際の剰余を求めるには %% を使います。
> 10%%3 [1] 1
特殊な計算
絶対値
絶対値を求めるには、 abs() を使います。
> abs(-10) [1] 10
対数 log
対数を求めるには、 log() を使います。
デフォルトでは底を eとした自然対数を求めます。
オプションで base = y を指摘することで、底の値を y にできます。
> log(1) [1] 0 > log(100) [1] 4.60517 > log(100,base = 10) [1] 2
底を2としたlog
底を2とするlog計算には log2() が使えます。通常のlog関数で底を2に指定するのと変わりません。
> log2(2) [1] 1 > log(2,base = 2) [1] 1
底を10としたlog
底を2とするlog計算には log10() が使えます。
> log10(10) [1] 1
四捨五入
小数点y桁でxを四捨五入する計算には、 round(x, y) が使えます。
yを負の数で指定することで、整数の四捨五入も可能です。
ただし、IEEE式の四捨五入であり、小学校で習うものとは微妙に違います。
詳細は以下のリンクが詳しいです。要約すると、五入とは限らず、五捨があり得ます。
JIS,ISO式四捨五入 - RjpWiki
> round(3.14, 1) [1] 3.1 > round(314, -1) [1] 310 > round(10.45, 1) [1] 10.4
小数点以下を切り捨て
小数点以下の切り捨てには、 floor() または trunc() が使えます。
round(x,y) でyを0桁に指定した際と
ただし、 floor() は小さい方に丸めるのに対して、trunc() は0に近づけて丸めます。
この違いが出るのは、負の値を処理する場合です。
> floor(3.14) [1] 3 > trunc(3.14) [1] 3 > floor(-0.5) [1] -1 > trunc(-0.5) [1] 0
小数点以下を切り上げ
小数点以下を切り上げる場合には、 ceiling() が使えます。
負の値を対象としている場合には、 trunc() と同じ計算結果になります(0に近づける切り捨てをするため)。
> ceiling(3.14) [1] 4 > ceiling(-0.5) [1] 0 > trunc(-0.5) [1] 0
小数点以下を四捨五入した切り上げor切り捨て
あくまで1桁の整数部分で四捨五入したい(切り捨てとは限らない)場合は、
roud(x,y) でyを0に指定する必要があります。
> round(3.14, 0) [1] 3 > round(3.54, 0) [1] 4
sin, cos, tan
それぞれ sin() cos() tan() を使うことで計算できます。
しかし、私は全くもってそれが何だったかを忘れてしまったので、当分使う機会はなさそうです。
高校数学を学び直さないといけません。
> sin(1.2) [1] 0.9320391 > cos(0.9) [1] 0.62161 > tan(1.2) [1] 2.572152
代数
実際に細々とここで述べてきたような計算をすることはそう多くはありません。
実際には、変数を代入して、代数計算を行います。
代入
変数の代入は、<- を使います(ショートカットキーは "Alt" + "=")。
以下のコードで x=10, y=3 となりました。
> x <- 10 > y <- 3
代数を用いた計算
これを使って計算できます。
> x + y [1] 13 > x - y [1] 7 > x * y [1] 30 > x ^ y [1] 1000 > x / y [1] 3.333333 > x %% y [1] 1
変数には一意の値だけではなく、データを代入することができます。
そして、それらのデータをまとめて扱い、計算する関数が存在します。
従って、繰り返し処理を行わずとも、膨大な計算を行うことができる点がRの強みになっています。
今回は基本的な計算のみ扱いました。今後はR本来の強みであるデータの処理について扱っていきます。