如何将反应值传递给 DiagrammeR::grViz()?

问题描述

我试图将两个反应值传递到我的 Diagrammer::grViz 代码中,例如 [1]: paste0("Count is : \n",df()$count[rownum()]) 其中 df() 是我的数据框,而 rownum() 是特定的选定行号。

我收到诸如“未找到 df()”或“未找到 rownum()”之类的错误。我想这个错误是因为引号内的整个 grViz 代码

还有 \npaste0() 中不起作用。

有什么解决办法吗?

提前致谢。

示例代码如下:

library(shiny)

app <- shinyApp(
  ui = fluidPage(
    
    DT::dataTableOutput("mydatatable")
  ),server =  shinyServer(function(input,output,session) {
    
    mycars <- reactive({ head(mtcars)})
    output$mydatatable = DT::renderDataTable(mycars(),selection = 'single',rownames = FALSE,options = list(dom = 't'))
    selected_row <- reactiveVal(value = NULL)
    observeEvent(input$mydatatable_rows_selected,{
      selected_row(input$mydatatable_rows_selected)
    })
    
    observeEvent(selected_row(),{
                   showModal(modalDialog(
                     title = "You have selected a row!",DiagrammeR::grViz("
                                       digraph flowchart {
                                       graph [layout = dot]
                                       node [shape = rectangle,width = 3,fillcolor = Biege]
                                       a [label = '@@1']
                                       b [label = '@@2']
                                       
                                       a -> b
                                       }
                                       [1]: paste0('mpg = \n',mycars()$mpg[selected_row()])
                                       [2]: paste0('cyl = \n',mycars()$cyl[selected_row()])
                                       ",width = 200)
                   ))
                 })
  })
)

app

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)