パーフェクトR

オンライン資料:Rライクな関数

この記事を読むのに必要な時間:およそ 4 分

『パーフェクトR』のオンライン資料です。

ここではRの関数と類似した Rcpp の関数の一覧を示します。

また,これらの関数に与えるベクトルに NA が含まれていないと保証できる場合には,次の例のように noNA 関数を使って印をつけると Rcpp の関数が NA のチェックを行わなくなるので計算が速くなります。

NumericVector res = mean(noNA(v));

Rライクな関数の一覧

ベクトルに関連する関数

関数 説明
head(v, n) ベクトル v の最初の要素から n 個のベクトルを返す
tail(v, n) ベクトル v の最後の要素から n 個のベクトルを返す
rev(v) ベクトル v の要素を逆順に並べたベクトルを返す
rep(x, n) ベクトルあるいはスカラー x を n 個つなげたベクトルを返す
rep_each(v, times) ベクトル v の要素を順に times 回ずつ繰り返したベクトルを返す
rep_len(v, n) 最終的にベクトルの長さが n になるまでベクトル v を繰り返したベクトルを返す
seq(start, end) 整数 start から end までの連続した整数のベクトルを返す
seq_along(v) 1 からベクトル v の要素数までの連続した整数のベクトルを返す
seq_len(n) 1 から n までの連続した整数のベクトルを返す
diff(v) ベクトル v の最後の要素を除いた各要素 i について v[i+1] - v[i] を計算したベクトルを返す

文字列に関連する関数

関数 説明
collapse(v) 文字列ベクトル v の各要素を結合した文字列を String 型で返す

値の検索に関連する関数

関数 説明
match(v, table) ベクトル v の各要素について,値が一致するベクトル table の最初の要素の要素番号(1からはじまる)を格納した整数ベクトルを返す。⁠つまり,res = match(v, table) とすると,res[i] には v[i]==table[j] となる最小の j+1 の値が格納される)
self_match(v) match(v, table) の v と table に同じベクトルを渡した場合と同義
which_max(v) ベクトル v の最大の要素の要素番号を返す
which_min(v) ベクトル v の最小の要素の要素番号を返す

重複の値に関連する関数

関数 説明
duplicated(v) ベクトル v の各要素の値が,それより前の要素に存在する場合には 1 を,そうでない場合には 0 を入れたベクトルを返す
unique(v) ベクトル v から要素の値の重複をなくしたベクトルを返す
sort_unique(v) ベクトル v から要素の値の重複をなくし,値を昇順でソートしたベクトルを返す

集合演算に関連する関数

関数 説明
setdiff(v1,v2) ベクトル v1 のユニークな(値の重複のない)要素から,ベクトル v2 のユニークな要素にある値を除いたベクトルを返す
setequal(v1,v2) ベクトル v1 のユニークな要素がベクトル v2 のユニークな要素と等しい場合には true を返す
intersect(v1,v2) ベクトル v1 のユニークな要素とベクトル v2 のユニークな要素の両方に含まれる要素をベクトルで返す
union_(v1,v2) ベクトル v1 とベクトル v2 の要素を合わせてから値の重複をなくしたベクトルを返す

最大値・最小値に関連する関数

関数 説明
min(v) ベクトル v の要素の最小値を返す
max(v) ベクトル v の要素の最大値を返す
cummin(v) ベクトル v の各要素について,その要素自身を含むそれ以前の要素の最小値を格納したベクトルを返す
cummax(v) ベクトル v の各要素について,その要素自身を含むそれ以前の要素の最大値を格納したベクトルを返す
pmin(v1,v2) ベクトル v1 v2 の対応する要素を比較し,大さい方の要素を格納したベクトルを返す
pmax(v1,v2) ベクトル v1 v2 の対応する要素を比較し,大きい方の要素を格納したベクトルを返す
range(v) ベクトル v の最小値と最大値からなるベクトルを返す
clamp(min, v, max) ベクトル v の要素の min 未満の値を min に,max 超の値を max に置き換えたベクトルを返す

集計に関連する関数

関数 説明
sum(v) ベクトル v の要素の値の総和を返す
mean(v) ベクトル v の要素の値の平均値を返す
median(v) ベクトル v の要素の値の中央値を返す
sd(v) ベクトル v の要素の値の標準偏差を返す
var(v) ベクトル v の要素の値の分散を返す
cumsum(v) ベクトル v の各要素について,それ以前の要素の総和を格納したベクトル返す
cumprod(v) ベクトル v の各要素について,それ以前の要素の総積を格納したベクトル返す
rowSums(x, na_rm = false) 行列 x の行ごとに総和を取ったベクトルを返す。na_rm が true の場合は x に含まれるNA値を無視して計算する
colSums(x, na_rm = false) 行列 x の列ごとに総和を取ったベクトルを返す。na_rm が true の場合は x に含まれるNA値を無視して計算する
rowMeans(x, na_rm = false) 行列 x の行ごとに平均を取ったベクトルを返す。na_rm が true の場合は x に含まれるNA値を無視して計算する
colMeans(x, na_rm = false) 行列 x の列ごとに平均を取ったベクトルを返す。na_rm が true の場合は x に含まれるNA値を無視して計算する
table(v) ベクトル v のユニークな要素の値それぞれについて,値の等しい要素がいくつあるか集計した名前付き整数ベクトルを返す

端数処理に関連する関数

関数 説明
floor(v) ベクトル v の各要素について,その値より大きくない最大の整数を格納したベクトルを返す
ceil(v) ベクトル v の各要素について,その値より小さくない最大の整数を格納したベクトルを返す
ceiling(v) ceil() と同義
round(v, digits) ベクトル v の各要素を有効桁数 digits で丸めたベクトルを返す
trunc(v) ベクトル v の各要素について,小数点以下を切り捨てたベクトルを返す

数学に関連する関数

関数 説明
sign(v) ベクトル v の各要素について,正なら1を負なら-1を格納したベクトルを返す
abs(v) ベクトル v の各要素の絶対値を格納したベクトルを返す
pow(v, n) ベクトル v の各要素を n 乗したベクトルを返す
sqrt(v) ベクトル v の各要素の平方根をとったベクトルを返す
exp(v) ネイピア数 e をベクトル v の各要素の値でべき乗したベクトルを返す
expm1(v) exp(v) - 1 と同義
log(v) ベクトル v の各要素の自然対数をとったベクトルを返す
log10(v) ベクトル v の各要素の常用対数をとったベクトルを返す
log1p(v) log(v+1) と同義
sin(v) ベクトル v の各要素のサインをとったベクトルを返す
sinh(v) ベクトル v の各要素のハイパボリックサインをとったベクトルを返す
cos(v) ベクトル v の各要素のコサインをとったベクトルを返す
cosh(v) ベクトル v の各要素のハイパボリックコサインをとったベクトルを返す
tan(v) ベクトル v の各要素のタンジェントをとったベクトルを返す
tanh(v) ベクトル v の各要素のハイパボリックタンジェントをとったベクトルを返す
acos(v) ベクトル v の各要素のアークコサインをとったベクトルを返す
asin(v) ベクトル v の各要素のアークサインをとったベクトルを返す
atan(v) ベクトル v の各要素のアークタンジェントをとったベクトルを返す。
gamma(v) ベクトル v の各要素をガンマ関数で変換したベクトルを返す
lgamma(v) log(gamma(v)) と同義
digamma(v) ベクトル v の各要素を lgamma() の一階微分関数で変換したベクトルを返す
trigamma(v) ベクトル v の各要素を lgamma() の二階微分関数で変換したベクトルを返す
tetragamma(v) ベクトル v の各要素を lgamma() の三階微分関数で変換したベクトルを返す
pentagamma(v) ベクトル v の各要素を lgamma() の四階微分関数で変換したベクトルを返す
psigamma(v, deriv) ベクトル v の各要素を digamma(v) の deriv 階微分関数で変換したベクトルを返す
factrial(v) ベクトル v の各要素の階乗をとったベクトルを返す
lfactorial(v) log(factrial(v)) と同義。
choose(vn, vk) 実数ベクトル vn,整数ベクトル vk の対応する各要素を用いて二項係数を計算したベクトルを返す
lchoose(vn, vk) log(choose(vn, vk)) と同義
beta(va, vb) ベクトル va, vb の対応する各要素を用いてベータ関数の値を計算したベクトルを用いる
lbeta(va, vb) log(beta(va, vb)) と同義

論理値に関連する関数

関数 説明
all(v) 論理ベクトル v を受け取り,すべての要素が TRUE のとき,TRUE を意味する SingleLogicalResult 型を返す
any(v) 論理ベクトル v を受け取り,いずれかのの要素が TRUE のとき,TRUE を意味する SingleLogicalResult 型を返す
is_true(x) all(), any() の戻り値 x を受け取り TRUE の場合には true を bool 型で返す
is_false(x) all(), any() の戻り値 x を受け取り FALSE の場合には true を bool 型で返す
is_na(x) all(), any() の戻り値 x を受け取り NA の場合には true を bool 型で返す
ifelse(v, x1, x2) 論理ベクトル v を受け取り,v の要素が TRUE のときには x1 の対応する要素を,FALSE のときには x2 の対応する要素を格納したベクトルを返す。x1, x2 はベクトルでもスカラーでも良いが,ベクトルの長さは v と一致している必要がある

NA,Inf,NaNに関連する関数

関数 説明
na_omit(v) ベクトル v から NAを削除したベクトルを返す
is_finite(v) ベクトル v の各要素が Inf または -Inf または NA ではない場合に TRUE を格納した論理ベクトルを返す
is_infinite(v) ベクトル v の各要素が Inf または -Inf である場合に TRUE を格納した論理ベクトルを返す
is_na(v) ベクトル v の各要素が NA または NaN である場合に TRUE を格納した論理ベクトルを返す
is_nan(v) ベクトル v の各要素が NaN である場合に TRUE を格納した論理ベクトルを返す

apply関数

関数 説明
lapply(x, fun) ベクトル x の各要素に対してC++の関数 fun を適用した結果を List で返す
sapply(x, fun) ベクトル x の各要素に対してC++の関数 fun を適用した結果を Vector で返す
mapply(x1, x2, fun2) ベクトル x1 x2 の対応する各要素に対して2個の引数を受け取る C++ の関数 fun2 を適用した結果を Vector で返す
mapply(x1, x2, x3, fun3) ベクトル x1 x2 x3 の対応する各要素に対して3個の引数を受け取るC++ の関数 fun3 を適用した結果を Vector で返す

cbind関数

関数 説明
cbind(v1,v2,...) 引数として渡した Vector あるいは Matrix を列方向に結合した Matrix または DataFrame を返します。渡せる引数の数は50個まで