2016-08-02 14 views
-2

サンプル重要度リサンプリングアルゴリズムの次のコードに問題があります。未使用の引数未使用引数エラーRコード

シータの宣言のために:それは本当

ログ=返します。

T = 1e5 
theta <- runif(T,0,1, log=TRUE) 
log.p <- function(x) dbeta(x, 3000+711, 17000+2201-711) 
log.s <- function(x) dunif(x, 0, 1,) 
w <- function(t) log.p(t)/log.s(t) 
HA <- sum(w(theta)%*%theta)/T 
+2

ログはrunifの引数だったという考えをどこから得ましたか? –

+0

Rコンソールに '?runif'と入力して文書を確認してください。 'log'引数はありません。値が渡される 'n'、' min'、 'max'の3つの引数だけがあります。 –

+0

'theta = log(runif(T、0,1))'を探していますか? –

答えて

1

エラーメッセージがrunif関数にはlog引数がないことを言っています。 (たとえば、?runifを実行している)の機能の*unif家族のマニュアルを点検すると、私たちはこの示しています。私は間違っているんだけど、から、それはrunif(ように見える場合

Usage: 

    dunif(x, min = 0, max = 1, log = FALSE) 
    punif(q, min = 0, max = 1, lower.tail = TRUE, log.p = FALSE) 
    qunif(p, min = 0, max = 1, lower.tail = TRUE, log.p = FALSE) 
    runif(n, min = 0, max = 1) 
1

をより良くRに精通誰かが私を修正)」doesnのログ引数を取る。ここでは何もしないので、単にlog = trueを渡してください。

+3

R関数が任意の引数を受け入れるべきであることを示唆するためのDownvote。 –

+0

とにかくそれを編集しましたが、予期せぬことですが危険でも未定義の振る舞いでもないので、警告ではなくエラーではなくなります –

+0

@ HenryPrickett-Morgan逆に、異なる動作で、後のバージョンでパラメータを追加する可能性があります。より根本的に、この振る舞いを許す理由は全くありません。それはいつも明白に間違っています。なぜR *がこれを禁止しないのですか?厳密なエラーチェックがコード品質を向上させるという十分な証拠があります。 –

関連する問題