is there any way i can correct this error message

0 votes
abcdefghij.onestep <- function (x, params) { 
    Susceptible <- x[2]
    Exposed<- x[3]
    Infected_Multibacillary <- x[4]
    Infected_Paucibacillary<- x[5]
    Exposed_Detected_Diagnosis <- x[6]
    Treated <- x[7]
    Disability<- x[8]
    Recovered<- x[9]
    Relapse_Multibacillary <-x[10]
    Relapse_Paucibacillary<-x[11]
    N <- Susceptible + Exposed + Infected_Multibacillary + Infected_Paucibacillary + Exposed_Detected_Diagnosis + Treated + Disability + Recovered + Relapse_Multibacillary + Relapse_Paucibacillary
    m12 <- params["m12"]
    m25 <- params["m25"]
    m23 <- params["m23"]
    m24 <- params["m24"]
    m35 <- params["m35"]
    m45 <- params["m45"]
    m37 <- params["m37"]
    m56 <- params["m56"]
    m67 <- params["m67"]
    m68 <- params["m68"]
    m89 <- params["m89"]
    m810 <- params["m810"]
    m96 <- params["m96"]
    m97 <- params["m97"]
    m106 <- params["m106"]
    mu <- params["mu"]
    rates <- c(birth=mu*N, susceptible_exposed=m12*Susceptible*Infected_Multibacillary -m25*Infected_Multibacillary * Exposed_Detected_Diagnosis -m23*Exposed*Infected_Multibacillary -m24*Exposed*Infected_Paucibacillary, 
               exposed_infected_multibacillary=m23*Exposed*Infected_Paucibacillary-m35*Infected_Multibacillary*Exposed_Detected_Diagnosis-m45* Exposed_Detected_Diagnosis* Infected_Paucibacillary-m37*Disability*Infected_Multibacillary,
               exposed_infected_paucibacillary=m24*Exposed*Infected_Paucibacillary-m45*Infected_Paucibacillary*Exposed_Detected_Diagnosis,
               infected_multibacillary_exposed_detected=m35*Infected_Multibacillary*Exposed_Detected_Diagnosis+m45*Infected_Paucibacillary* Exposed_Detected_Diagnosis-m56* Exposed_Detected_Diagnosis*Treated,
               exposed_detected_treatment=m56*Exposed_Detected_Diagnosis*Treated-m67*Treated* Disability-m68*Treated*Recovered,
               infected_multibacillary_disability=m37*Disability*Infected_Multibacillary+m67*Treated* Disability,
               treated_recovered=m68* Treated*Recovered-m89*Recovered*Infected_Multibacillary-m810* Recovered*Infected_Paucibacillary,
               relapse_multibacillary_treatment=-m96*Relapse_Multibacillary* Treated-m97*Relapse_Multibacillary*Disability,
               relapse_paucibacillary_treatment=-m106*Relapse_Paucibacillary*Treated,
               susceptible_death=mu*Susceptible,
               exposed_death=mu*Exposed,
               infected_multibacillary_death=mu*Infected_Multibacillary,
               infected_paucibacillary_death=mu*Infected_Paucibacillary,
               exposed_detected_death=mu* Exposed_Detected_Diagnosis,
               treatment_death=mu*Treated,
               disability_death=mu*Disability,
               recovered_death=mu*Recovered,
               relapse_multibacillary_death=mu*Relapse_Multibacillary,
               relapse_paucibacillary_death=mu*Relapse_Paucibacillary
    )
    transitions <- list(birth=c(1,0,0,0,0,0,0,0,0,0), 
                        susceptible_exposed=c(-1,1,0,0,0,0,0,0,0,0), 
                        exposed_infected_multibacillary=c(0,-1,1,0,0,0,0,0,0,0),
                        exposed_infected_paucibacillary=c(0,-1,0,1,0,0,0,0,0,0),
                        infected_multibacillary_exposed_detected=c(0,0,-1,0,1,0,0,0,0,0),
                        exposed_detected_treatment=c(0,0,0,0,-1,1,0,0,0,0),
                        infected_multibacillary_disability=c(0,0,-1,0,0,0,1,0,0,0),
                        treated_recovered=c(0,0,0,0,0,-1,0,1,0,0),
                        relapse_multibacillary_treatment=c(0,0,0,0,0,1,0,0,-1,0),
                        relapse_paucibacillary_treatment=c(0,0,0,0,0,1,0,0,0,-1),
                        susceptible_death=c(-1,0,0,0,0,0,0,0,0,0),
                        exposed_death= c(0,-1,0,0,0,0,0,0,0,0),
                        infected_multibacillary_death= c(0,0,-1,0,0,0,0,0,0,0),
                        infected_paucibacillary_death= c(0,0,0,-1,0,0,0,0,0,0),
                        exposed_detected_death= c(0,0,0,0,-1,0,0,0,0,0),
                        treatment_death= c(0,0,0,0,0,-1,0,0,0,0),
                        disability_death= c(0,0,0,0,0,0,-1,0,0,0),
                        recovered_death= c(0,0,0,0,0,0,0,-1,0,0),
                        relapse_multibacillary_death= c(0,0,0,0,0,0,0,0,-1,0),
                        relapse_paucibacillary_death= c(0,0,0,0,0,0,0,0,0,-1)                                                       
                      )
    total.rate <- sum(rates)
    if (total.rate==0)
        tau <- Inf
    else
        tau <- rexp(n=1,rate=total.rate)
    event <- sample.int(n=6,size=1,prob=rates/total.rate)
    x+c(tau,transitions[[event]])
}

abcdefghij.simul function

abcdefghij.simul <- function (x, params, maxstep = 10000) {
    output <- array(dim=c(maxstep+1,11))
    colnames(output) <- names(x)
    output[1,] <- x
    k <- 1
    while ((k <= maxstep) && (x["Exposed"] > 0)) {
        k <- k+1
        output[k,] <- x <- abcdefghij.onestep(x,params)
    }
    as.data.frame(output[1:k,])
}

main program

set.seed(56856583)
nsims <- 1
xstart <- c(time=1,Susceptible=100000,Exposed=1,Infected_Multibacillary=1,Infected_Paucibacillary=1,Exposed_Detected_Diagnosis=1,Treated=1,Disability=1,Recovered=1,Relapse_Multibacillary=1,Relapse_Paucibacillary=1)
params <- c(mu=0.02,m12=1,m25=1,m23=1,m24=1,m35=1,m45=1,m37=1,m57=1,m67=1,m68=1,m89=1,m810=1,m96=1,m97=1,m106=1)

library(plyr)
simdat <- rdply(nsims, abcdefghij.simul(xstart,params))

error

Error in if (total.rate == 0) tau <- Inf else tau <- rexp(n = 1, rate = total.rate) : missing value where TRUE/FALSE needed

Apr 12, 2021 in Others by Aliyu

edited Mar 4 47 views

No answer to this question. Be the first to respond.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
webinar REGISTER FOR FREE WEBINAR X
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP