A
とB
はベクトルを入力として示しています。私の質問は、私がこの機能のために異なる数の獣医師を持つことができる方法です。私の機能では、n
は固定されており、サンプル数を示しています。たとえば、この場合でも私の関数が動作する必要があります:sample_sum (A, B, C, D, E, n, ...)
。 また、ベクトルAとBのサンプル(つまり、sample_A <- qss(A, n=n, ...)
)を入手する部分については、for
のループを使用していない異なる数のベクトルに変更する方法があります。for
ループが十分に速くないためです。関数の入力数の可変 - R
おかげ
sample_sum <- function(A, B, n, ...)
{
qss <- function(X, n, ...)
{
r_X <- range(X)
dens_X <- density(X, ...)
sample(dens_X$x, size=n, prob=dens_X$y, replace=TRUE)
}
sample_A <- qss(A, n=n, ...)
sample_B <- qss(B, n=n, ...)
sample_A + sample_B
}
あなたは単にあなたの入力のためのベクトルのリストを使用することができませんでしたか?それはあなたの求めるものではありませんが、目的を果たすだけのものです。どのような数のベクトルが期待できますか?ループはそれらを処理するのに十分速くないと結論づけていますか?それは時期尚早の最適化である可能性が高い。 – Bernhard
@Bernhard、あなたのヒントをありがとう。つまり、私はA、B、..ベクトルをリストに置き換えました。また、 "サンプル"の部分にはループを使用していますか?ヒントをスクリプトとして提供してもよろしいですか?ありがとう – Eric
一方、これはすでにUser2321によって提供されているようです。彼はループを使用しなかったが「適用する」が、それはわずかな違いに過ぎない。初心者のためのループはしばしば読みやすく、上級プログラマには '適用 'されますが、速度面ではそれほどRの違いはありません。 – Bernhard