收到错误消息“ checkFunc(Func2,times,y,rho)中的错误:模型函数必须返回列表”

时间:2019-11-08 13:24:26

标签: r

我正在研究一个模型来预测传染病的发生率,并且有一个模型可以有效地运行到昨天。现在,我收到消息:

Error in checkFunc(Func2, times, y, rho) : 
  Model function must return a list

代码如下:

library(deSolve)

run.model <- function(years,parameters,initial.state){

    years.needed = c(min(years)-1, years)
    results = ode(y=as.numeric(initial.state),
                  times=years.needed,
                  func=dx.model,
                  parms=parameters)

    rv = list()

    rv$parameters = parameters
    rv$years = years

    rv$results = process.ode.results(results, years)
    rv

}
sim = run.model(years=1500:2020,
          parameters=make.parameters(log.trate.hiv.neg.slope = log(1), 
                                     log.trate.hiv.neg.intercept = log(7),
                                     early.progression.risk.immune=0.00485*4.5,
                                     late.progression.risk.immune = 0.0005*4.5,
                                     latent.duration = 5,
                                     treat.tb.rate = 0.6,
                                     primary.progression.in.immune = .014),

                    initial.state = init.state)

我不知道为什么会出现此错误。

1 个答案:

答案 0 :(得分:0)

错误消息指出:模型函数必须返回一个列表。

这意味着您的函数var x = 0; if (x == 0){ $("#yname").click(function(){ $("#dropdowncontent").removeClass("dropdown-content"); $("#dropdowncontent").addClass("dropdown-content-show"); var x = 1; }); } else { $("#yname").click(function(){ $("#dropdowncontent").removeClass("dropdown-content-show"); $("#dropdowncontent").addClass("dropdown-content"); var x = 0; }); } 应该返回一个列表。 ?ode 帮助文件显示:

“ func的返回值应该是一个列表,其第一个元素是一个包含y相对于时间的导数的向量,并且其下一个元素是每个时间点所需的全局值。导数必须为以与状态变量y相同的顺序指定。”

不幸的是,您的示例不完整且可复制,因此我们无法检查详细信息并让您的代码运行。