2016-10-17 16 views
0

Rで非線形ソルバー(nls)を使用していますが、パーサーエラーが原因でモデルを実行できませんデバッグする方法。誰かがこれを修正する方法に関するいくつかのアドバイスを提供してもらえますか?Rコード:非線形ソルバーを使用しているときに「予期しない入力の解析でエラーが発生しました」

コード:

Bass.nls <- nls(Zt[which(!is.na(Zt))] ~ M * (((P+Q)^2/P) * exp(-(P+Q) * days))/(1+(Q/P)*exp(-(P+Q)*days))^2, start = list(M=Z[tInt], P=0.03, Q=0.38), lower = list(Y[tInt], 0,0), upper = list(2e10, 1,1), algorithm = "port", trace = TRUE) 

エラー:

Error in parse(text = x, keep.source = FALSE) : :2:0: unexpected end of input 1: ~

答えて

0

私のアドバイスは、その後

Bass.f <- function(days, M, P, Q) { 
    M * (((P + Q)^2/P) * exp(-(P + Q) * days))/
    (1 + (Q/P) * exp(-(P + Q) * days))^2 
} 

のように、より読みやすい形式で呼び出しを含むスクリプトを書くことになります関数が正しく書かれているかどうかを調べるために、

のように呼び出すことができます
Bass.f(1, 100, 0.03, 0.38) 

、その後、コール

Bass.nls <- nls(Zt[which(!is.na(Zt))] ~ Bass.f(days, M, P, Q), 
    start = list(M = Z[tInt], P = 0.03, Q = 0.38), 
    lower = list(Y[tInt], 0, 0), 
    upper = list(2e10, 1, 1), 
    algorithm = "port", trace = TRUE) 

てみてください、これはまだ同じエラーを与えていますか?はいの場合は、使用しているデータ、つまり出力が

dput(Zt) 

Z[tInt] 

days 
の場合は便利です
関連する問題