【发布时间】:2020-12-06 03:19:54
【问题描述】:
我知道这个问题已经出现过几次了,例如Markov Model diagram directly from data (makovchain or deemod package?)。我试图根据这些解决方案实施补救措施,但这仍然不起作用。显然,我遗漏了一些东西,如果能提供任何帮助,我将不胜感激!
简而言之,我正在尝试在 Shiny 应用中为 heemod::define_transition 提供 state_names。
这是我的代码:
library(heemod)
library(diagram)
library(shiny)
ui=shinyUI(fluidPage(
titlePanel("Markov Diagram Creator"),
fluidRow(
sidebarPanel(
textAreaInput("statenames_1",label = "Enter state names here...", value = "H,S1,S2,D"),
actionButton("go","Go")
),
mainPanel(
hr(),
plotOutput("plot")
)
)))
server=function(input,output){
state_names <- reactive( {
unlist(strsplit(x=input$statenames_1,split = "[[:punct:]]"))
})
len_states <- reactive({length(state_names())})
states <- reactive({state_names()})
statenames <- reactive({list(states(), states())})
markovTransitionMatrix <- reactive({matrix(0.25, nrow = len_states(), ncol = len_states(), dimnames = statenames())})
lis <- reactive({ as.list( markovTransitionMatrix() ) })
lis()$state_names <- reactive({ statenames() }) # Error in lis() <- reactive({ : invalid (NULL) left side of assignment
output$plot <- renderPlot({
plot(do.call( define_transition, lis() ), cex=0.75, ylim = c(0,.4))
})
}
shinyApp(ui,server)
【问题讨论】:
-
我已将
textAreaInput中的statenamesID 重命名为statenames_1。还取消注释有问题的行以重新创建错误。 -
我可能会做
lis2 <- reactive({ z <- list(); z$state_names <- statenames(); z; })并依赖lis2()从那里开始。 -
或者只是在原来的
lis()分配中修复它。