簡単な計算を行おう | Rstats入門(統計解析・科学技術計算)
簡単な計算を行ってみましょう。Rstatsでは、以下の演算子を使って、計算が行えます。
四則演算
記号 | 意味 |
+ | 足し算 |
- | 引き算 |
* | 掛け算 |
/ | 割り算 |
足し算、引き算、掛け算、割り算の記号は、R言語と同じです。
累乗
累乗はPerlの演算規則に従って「**」を使って行います。R言語の「^」とは異なるので注意してください。
記号 | 意味 |
** | 累乗 |
剰余
剰余はPerlの演算規則に従って「%」を使って行います。R言語の「%%」とは異なるので注意してください。
記号 | 意味 |
% | 剰余 |
整数商
Rstatsでは整数商を計算するための演算子は用意されていません。R言語の「%/%」は利用できないので注意してください。整数商を求める場合は、tranc関数を使って行います。割り算を行った後に、整数部を取り出します。
r->tranc($x1 / $x2)
計算の例を示します。Rstatsでは、ベクトルを使った計算が基礎になるので、c_関数を使って作成します。c_関数はベクトルを作成するための関数です。ひとつの数値であっても、ひとつの要素を持つベクトルとして計算します。
use strict; use warnings; use Rstats; my $x = (c_(1) + c_(2) - c_(3) * c_(4)) / c_(5) ** c_(6); print $x;
出力結果です。計算結果が出力されます。
[1] -0.000576
c_()をいつでも使うのは多少面倒に感じるかもしれませんが、Perlの上にR言語を実装しているために必要です。Rstatsで計算をするときは、いつでもベクトルを使って計算をするということを覚えてください。
今後のサンプルでは簡便のための、上記の「use Rstats」の下の行から書いていきますので、必要に応じて補ってください。
ルートの計算、対数の計算を行う場合には、Rstatsにはたくさんの関数が用意されています。たとえば、ルートの計算を行うためには、「sqrt関数」を使用します。
my $x = r->sqrt(c_(2)); print $x;
出力結果。
[1] 1.4142135623731
以下にRstatsで用意されている数学関数を紹介します。
記号 | 意味 |
sqrt | √ の計算 |
abs | 絶対値 |
exp | 自然対数の底 |
expm1 | x の絶対値 が1よりかなり小さい時に exp(x)-1 をより正確に計算 |
log | 自然対数 |
log10 | 常用対数 (底が10の対数) |
log2 | 底が2の対数 |
sin | サイン・正弦関数 |
cos | コサイン ・ 余弦関数 |
tan | タンジェント ・ 正接関数 |
asin | sin の逆関数 |
acos | cos の逆関数 |
atan | tan の逆関数 |
sinh | ハイパボリックサイン |
cosh | ハイパボリックコサイン |
tanh | ハイパボリックタンジェント |
asinh | sinh の逆関数 |
acosh | cosh の逆関数 |
atanh | tanh の逆関数 |
logb | log と同じ |
log1px(実装未) | x の絶対値が1より(かなり)小さい時,log(1+x) をより正確に計算 |
gamma(実装未) | ガンマ関数 |
lgamma(実装未) | log(gamma(x)) と同じ |
ceiling | 引数以上の最小整数 |
floor | 引数以下の最大整数:いわゆるガウス記号 |
trunc | 整数部分を求める |
round | 四捨五入 |
signif(x,a) 実装未 | x を 有効桁で a 桁まで丸める(正・0・負を判定するsignとは異なる) |