Ошибка в {: задача 1 не выполнена - "не удалось найти функцию" init_status.icm "" - PullRequest
0 голосов
/ 27 марта 2020

Запуск следующего кода из блога Тима Черча и получение этой ошибки. https://timchurches.github.io/blog/posts/2020-03-18-modelling-the-effects-of-public-health-interventions-on-covid-19-transmission-part-2/

 Error in { : task 1 failed - "could not find function "init_status.icm"" 

Ошибка говорит о том, что не может найти функцию, но я вижу ее в функциях среды.

enter image description here

Если вы загружаете код и запускаете его, он работает для вас? Я пытаюсь заставить работать этот базовый сценарий и затем изменить параметры, чтобы использовать разные допущения для моделирования распространения covid-19 среди населения. Может кто-нибудь помочь, пожалуйста?

  # Churches (2020, March 18). Tim Churches Health Data Science Blog: Modelling the effects of public health interventions on COVID-19 transmission using R - part 2. Retrieved from https://timchurches.github.io/blog/posts/2020-03-18-modelling-the-effects-of-public-health-interventions-on-covid-19-transmission-part-2/


library(tidyverse)
library(magrittr)
library(lubridate)
library(stringr)
library(tibble)
library(broom)
library(ggplot2)
library(gt)
library(knitr)
library(devtools)
library(DiagrammeR)
library(parallel)
library(foreach)
library(tictoc)
suppressMessages(library(EpiModel))
library(incidence)
library(earlyR)

tic("Time to complete")

source_files <- c("_icm.mod.init.seiqhrf.R", "_icm.mod.status.seiqhrf.R", 
                  "_icm.mod.vital.seiqhrf.R", "_icm.control.seiqhrf.R", "_icm.utils.seiqhrf.R", 
                  "_icm.saveout.seiqhrf.R", "_icm.icm.seiqhrf.R")

src_path <- paste0("./_posts/2020-03-18-modelling-the-effects-of-public-health-", 
                   "interventions-on-covid-19-transmission-part-2/")

gist_url <- "https://gist.github.com/timchurches/92073d0ea75cfbd387f91f7c6e624bd7"

local_source <- FALSE

for (source_file in source_files) {
    if (local_source) {
        source(paste(src_path, source_file, sep = ""))
    } else {
        source_gist(gist_url, filename = source_file)
    }
}

# function to set-up and run the baseline simulations
simulate <- function(# control.icm params
    type = "SEIQHRF", 
    nsteps = 366, 
    nsims = 8,
    ncores = 4,
    prog.rand = FALSE,
    rec.rand = FALSE,
    fat.rand = TRUE,
    quar.rand = FALSE,
    hosp.rand = FALSE,
    disch.rand = TRUE,
    infection.FUN = infection.seiqhrf.icm,
    recovery.FUN = progress.seiqhrf.icm,
    departures.FUN = departures.seiqhrf.icm,
    arrivals.FUN = arrivals.icm,
    get_prev.FUN = get_prev.seiqhrf.icm,
    # init.icm params
    s.num = 9997,
    e.num=0,
    i.num = 3,
    q.num=0,
    h.num=0,
    r.num = 0,
    f.num = 0,
    # param.icm params
    inf.prob.e = 0.02, 
    act.rate.e = 10,
    inf.prob.i = 0.05, 
    act.rate.i = 10,
    inf.prob.q = 0.02, 
    act.rate.q = 2.5,                    
    quar.rate = 1/30, 
    hosp.rate = 1/100,
    disch.rate = 1/15,
    prog.rate = 1/10,
    prog.dist.scale = 5,
    prog.dist.shape = 1.5,
    rec.rate = 1/20,
    rec.dist.scale = 35,
    rec.dist.shape = 1.5,
    fat.rate.base = 1/50,
    hosp.cap = 40,
    fat.rate.overcap = 1/25,
    fat.tcoeff = 0.5,
    vital = TRUE,
    a.rate = (10.5/365)/1000, 
    a.prop.e = 0.01,
    a.prop.i = 0.001,
    a.prop.q = 0.01,
    ds.rate = (7/365)/1000, 
    de.rate = (7/365)/1000, 
    di.rate = (7/365)/1000,
    dq.rate = (7/365)/1000,
    dh.rate = (20/365)/1000,
    dr.rate = (7/365)/1000,
    out="mean"
) {

    control <- control.icm(type = type, 
                           nsteps = nsteps, 
                           nsims = nsims,
                           ncores = ncores,
                           prog.rand = prog.rand,
                           rec.rand = rec.rand,
                           infection.FUN = infection.FUN,
                           recovery.FUN = recovery.FUN,
                           arrivals.FUN = arrivals.FUN,
                           departures.FUN = departures.FUN,
                           get_prev.FUN = get_prev.FUN)

    init <- init.icm(s.num = s.num,
                     e.num = e.num,
                     i.num = i.num,
                     q.num = q.num,
                     h.num = h.num,
                     r.num = r.num,
                     f.num = f.num)

    param <-  param.icm(inf.prob.e = inf.prob.e, 
                        act.rate.e = act.rate.e,
                        inf.prob.i = inf.prob.i, 
                        act.rate.i = act.rate.i,
                        inf.prob.q = inf.prob.q, 
                        act.rate.q = act.rate.q,                    
                        quar.rate = quar.rate,
                        hosp.rate = hosp.rate,
                        disch.rate = disch.rate,
                        prog.rate = prog.rate,
                        prog.dist.scale = prog.dist.scale,
                        prog.dist.shape = prog.dist.shape,
                        rec.rate = rec.rate,
                        rec.dist.scale = rec.dist.scale,
                        rec.dist.shape = rec.dist.shape,
                        fat.rate.base = fat.rate.base,
                        hosp.cap = hosp.cap,
                        fat.rate.overcap = fat.rate.overcap,
                        fat.tcoeff = fat.tcoeff,
                        vital = vital,
                        a.rate = a.rate, 
                        a.prop.e = a.prop.e,
                        a.prop.i = a.prop.i,
                        a.prop.q = a.prop.q,
                        ds.rate = ds.rate, 
                        de.rate = de.rate, 
                        di.rate = di.rate,
                        dq.rate = dq.rate,
                        dh.rate = dh.rate,
                        dr.rate = dr.rate)

    sim <- icm.seiqhrf(param, init, control)
    sim_df <- as.data.frame(sim, out=out)

    return(list(sim=sim, df=sim_df))
}

baseline_sim <- simulate(ncores = 4)

1 Ответ

0 голосов
/ 28 марта 2020

Я изменил количество ядер (ncores) на 1 в обеих функциях (имитация и базовая линия) и преуспел в этом.

control.icm фактически установил ядро ​​на 1, как вы можете видеть на рисунке ниже :

https://i.stack.imgur.com/xnx69.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...