Rパッケージのソースを見ると、関数が表示されています sweep
頻繁に使用されるます。場合によっては、より単純な関数で十分な場合に使用されます(例:)apply
。それ以外の場合は、コードブロックをステップ実行するためにかなりの時間を費やすことなく、何をしているのかを正確に知ることが不可能です。
sweep
より単純な関数を使用しての効果を再現できるという事実は、私には理解できないことを示唆していますsweep
のコアユースケースをことを示唆しており、この関数が頻繁に使用されるという事実は、それが非常に有用であることを示唆しています。
コンテキスト:
sweep
Rの標準ライブラリの関数です。その引数は次のとおりです。
sweep(x, MARGIN, STATS, FUN="-", check.margin=T, ...)
# x is the data
# STATS refers to the summary statistics which you wish to 'sweep out'
# FUN is the function used to carry out the sweep, "-" is the default
あなたが見ることができるように、引数は次のようにしているapply
もののsweep
1つ以上のパラメーターを必要ますSTATS
。
別の重要な違いはsweep
、同じ形状の配列を返すことです、入力配列に対して、apply
渡された関数異なります。
sweep
動作中:
# e.g., use 'sweep' to express a given matrix in terms of distance from
# the respective column mean
# create some data:
M = matrix( 1:12, ncol=3)
# calculate column-wise mean for M
dx = colMeans(M)
# now 'sweep' that summary statistic from M
sweep(M, 2, dx, FUN="-")
[,1] [,2] [,3]
[1,] -1.5 -1.5 -1.5
[2,] -0.5 -0.5 -0.5
[3,] 0.5 0.5 0.5
[4,] 1.5 1.5 1.5
要約すると、私が探しているのは sweep
。
Rのドキュメンテーション、メーリングリスト、または「主要な」Rソースのいずれにも言及またはリンクしないでください。私がそれらを読んだと想定します。私が興味を持っているのは、経験豊富なRプログラマ/アナリストsweep
が自分のコードでどのように使用するかです。
apply
この結果について私が理解できる唯一の使用法はのようなものですがt(apply(t(M), 2, "-", dx))
、それはかなり厄介です。