我正在研究一个模型来预测传染病的发生率,并且有一个模型可以有效地运行到昨天。现在,我收到消息:
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)
我不知道为什么会出现此错误。
答案 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相同的顺序指定。”
不幸的是,您的示例不完整且可复制,因此我们无法检查详细信息并让您的代码运行。