Shiny 闪亮:McLappy遇到错误,而Lappy没有
我有一个反应在闪亮,功能完全好,与lappy(两个街区下来,在第33行),但打破了作为一个mclappy。McLappy(1:400,函数(sim_n){:所有计划的内核在用户代码中遇到错误 我尝试了force()的mclappy,force(缩写,initial,input)的一些参数。不确定这是不是正确的想法,甚至是问题。它不起作用 我无法调试这个问题,因为Lappy版本没有问题。谢谢你的帮助Shiny 闪亮:McLappy遇到错误,而Lappy没有,shiny,parallel-processing,reactive,mclapply,Shiny,Parallel Processing,Reactive,Mclapply,我有一个反应在闪亮,功能完全好,与lappy(两个街区下来,在第33行),但打破了作为一个mclappy。McLappy(1:400,函数(sim_n){:所有计划的内核在用户代码中遇到错误 我尝试了force()的mclappy,force(缩写,initial,input)的一些参数。不确定这是不是正确的想法,甚至是问题。它不起作用 我无法调试这个问题,因为Lappy版本没有问题。谢谢你的帮助 SIM_DF = eventReactive(input$Simulate,{
SIM_DF = eventReactive(input$Simulate,{
STATUS_TRT_DUR_PLOT("<i>Up to date</i>")
active_data = NULL
if (input$Analysis == 0){
seq_loop <<- seq(1,1,1)
} else if (input$Analysis == 1){
seq_loop <<- seq(input$positive_rate[1],input$positive_rate[2],input$s1_step)
} else if (input$Analysis == 2){
seq_loop <<- seq(input$initial_infected[1],input$initial_infected[2],input$s2_step)
} else if (input$Analysis == 3){
seq_loop <<- seq(input$vaccine_range[1],input$vaccine_range[2],input$s3_step)
} else if (input$Analysis == 4){
seq_loop <<- seq(input$camp_size_range[1],input$camp_size_range[2],input$s4_step)
} else if (input$Analysis == 5){
seq_loop <<- seq(input$cabin_size_range[1],input$cabin_size_range[2],input$s5_step)
}
for (initial in seq_loop){
if (input$Analysis == 1){
initials = rbinom(input$camp_size, 1, prob = (initial/100))
} else if (input$Analysis == 2){
initials = c(rep(1, times = initial), rep(0,times = (input$camp_size - initial)))
} else if (input$Analysis == 4){
initials = rbinom(initial, 1, prob = (input$positive_rate/100))
} else {
initials = rbinom(input$camp_size, 1, prob = (input$positive_rate/100))
}
########## HERE IS THE MCLAPPLY #####
sims <- mclapply(1:400, function(sim_n){
if (input$Analysis == 0){
camp_data_holder = data.frame(sim_n = rep(sim_n, each = input$camp_size),
initial = initial,
id = 1:input$camp_size,
status = rbinom(input$camp_size, 1, prob = (input$positive_rate/100)),
vaccine = rbinom(input$camp_size, 1, prob = (input$vaccine_rate/100)),
Quarantine = rep(0,each = input$camp_size))
} else if (input$Analysis == 1){
camp_data_holder = data.frame(sim_n = rep(sim_n, each = input$camp_size),
initial = initial,
id = 1:input$camp_size,
status = rbinom(input$camp_size, 1, prob = (initial/100)),
vaccine = rbinom(input$camp_size, 1, prob = (input$vaccine_rate/100)),
Quarantine = rep(0,each = input$camp_size))
} else if (input$Analysis == 2){
camp_data_holder = data.frame(sim_n = rep(sim_n, each = input$camp_size),
initial = initial,
id = 1:input$camp_size,
status = sample(initials, size = input$camp_size),
vaccine = rbinom(input$camp_size, 1, prob = (input$vaccine_rate/100)),
Quarantine = rep(0,each = input$camp_size))
} else if (input$Analysis == 3){
camp_data_holder = data.frame(sim_n = rep(sim_n, each = input$camp_size),
initial = initial,
id = 1:input$camp_size,
status = rbinom(input$camp_size, 1, prob = (input$positive_rate/100)),
vaccine = rbinom(input$camp_size, 1, prob = (initial/100)),
Quarantine = rep(0,each = input$camp_size))
} else if (input$Analysis == 4){
camp_data_holder = data.frame(sim_n = rep(sim_n, each = initial),
initial = initial,
id = 1:initial,
status = rbinom(initial, 1, prob = (input$positive_rate/100)),
vaccine = rbinom(initial, 1, prob = (input$vaccine_rate/100)),
Quarantine = rep(0,each = initial))
} else if (input$Analysis == 5){
camp_data_holder = data.frame(sim_n = rep(sim_n, each = input$camp_size),
initial = initial,
id = 1:input$camp_size,
status = rbinom(input$camp_size, 1, prob = (input$positive_rate/100)),
vaccine = rbinom(input$camp_size, 1, prob = (input$vaccine_rate/100)),
Quarantine = rep(0,each = input$camp_size))
}
active_data_holder = NULL
if(input$Analysis != 2){
for (day_n in 0:input$Duration){
test <- testing(camp_data_holder, input, active_data_holder, day_n, initial, sim_n)
camp_data_holder = test$camp_data_holder
active_data_holder = test$active_data_holder
active_infections = test$active_infections
Activities <- Infections(camp_data_holder, input, active_infections, initial)
camp_data_holder = Activities$camp_data_holder
}
} else if (input$Analysis == 2){
active_infections = nrow(filter(camp_data_holder, status == 1 & Quarantine == 0))
active_data_holder <- data.frame(sim_n = sim_n,
initial = initial,
day = 0,
Infections = sum(camp_data_holder$status),
Active_Infections = active_infections,
Quarantine = sum(camp_data_holder$Quarantine),
initial_infections = sum(camp_data_holder$status))
Activities <- Infections(camp_data_holder, input, active_infections)
camp_data_holder = Activities$camp_data_holder
for (day_n in 1:input$Duration){
test <- testing(camp_data_holder, input, active_data_holder, day_n, initial, sim_n)
camp_data_holder = test$camp_data_holder
active_data_holder = test$active_data_holder
active_infections = test$active_infections
Activities <- Infections(camp_data_holder, input, active_infections, initial)
camp_data_holder = Activities$camp_data_holder
}
}
incProgress(amount = 1/(400*length(seq_loop)))
return(active_data_holder)
})
active_data <- bind_rows(do.call(rbind.data.frame, sims))
return(active_data)
}
active_data1 <<- active_data
return(active_data)
})
SIM_DF=eventReactive(输入$Simulate{
状态图(“最新”)
活动数据=空
如果(输入$Analysis==0){
seq_循环此链接可能会有所帮助: