行列が2であり、その引数の1つとして2ベクトルをとる関数があるとします。行列の各行に関数を適用し、nベクトルを取得したいと思います。どのようにRでこれを行うには?例えば行列またはデータフレームのすべての行に関数を適用する
、私は3点で2D標準正規分布の密度を計算したい:
bivariate.density(x = c(0, 0), mu = c(0, 0), sigma = c(1, 1), rho = 0){
exp(-1/(2*(1-rho^2))*(x[1]^2/sigma[1]^2+x[2]^2/sigma[2]^2-2*rho*x[1]*x[2]/(sigma[1]*sigma[2]))) * 1/(2*pi*sigma[1]*sigma[2]*sqrt(1-rho^2))
}
out <- rbind(c(1, 2), c(3, 4), c(5, 6))
方法out
の各行に関数を適用しますか?
指定した方法で、関数のポイント以外の他の引数の値を渡す方法はありますか?
おかげで使用されているかを注意深く見てください結果を見てみましょう!行列の行が関数の最初の引数でない場合はどうなりますか?行列の各行に割り当てられている関数のargを指定する方法は? – Tim
'apply()'のヘルプを読む - 行ごとに(2番目の引数が1、それ以外の場合)、現在の行(またはcol)が常に最初の引数です。それが物事を定義する方法です。 –
@Tim:内部R関数を使用し、その行が最初のargでない場合は、Dirkが行ったようにして、行**が最初のargである独自のカスタム関数を作成します。 –