タグ付けされた質問 「sapply」

10
グループ化関数(tapply、by、aggregate)および* applyファミリー
Rで何か「マップ」pyを実行したいときはいつでも、通常はapplyファミリーの関数を使用しようとします。 しかし、私はそれらの違いを完全には理解していません-どのように{ sapply、lapplyなど}出力がどのように見えるか、または入力が可能であっても、何の入力/グループ化された入力に関数を適用する-多くの場合、私はので、私が欲しいものを手に入れるまでそれらすべてを通り抜けてください。 誰かがいつどのように使用するか説明できますか? 私の現在の(おそらく正しくない/不完全な)理解は... sapply(vec, f):入力はベクトルです。出力はベクトル/行列で、要素iはf(vec[i])でfあり、複数要素の出力がある場合に行列を提供します lapply(vec, f): と同じ sapplyですが、出力はリストですか? apply(matrix, 1/2, f):入力は行列です。出力はベクトルで、要素はiはf(行列の行/列i)です。 tapply(vector, grouping, f):出力は行列/配列であり、行列/配列の要素はベクトルのfグループ化gでの値であり、g、行/列名にプッシュされます by(dataframe, grouping, f):gグループ化しましょう。fグループ/データフレームの各列に適用されます。f各列のグループと値をきれいに出力します。 aggregate(matrix, grouping, f):に似てbyいますが、出力をきれいに出力する代わりに、aggregateはすべてをデータフレームに貼り付けます。 サイド質問:私はまだplyrまたはリシェイプを学んでいない-でしょうplyrかreshape、完全にこれらのすべてを置き換えますか?
1040 r  lapply  sapply  tapply  r-faq 

6
行列またはデータフレームのすべての行に関数を適用する
私が2行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? 指定する方法で関数へのポイント以外の引数に値を渡す方法は?
129 r  function  matrix  apply  sapply 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.