使用活动值更新了代码

时间:2017-07-19 08:45:01

标签: r shiny

我希望构建一个交互式数据可视化。 我的数据集包含1244个obs和9个变量 分享以下数据的屏幕截图: Screenshot of sample Dataset

数据可视化流程:

  1. 从输入框中选择公司名称,它将提供输出表(来自主数据集的该公司的子集)

  2. 从输入框

  3. 中选择上述compary的DIR
  4. 删除DIR后,它会给出公司名称的输出(在检查主数据集之后),如果它存在。

  5. 我写的代码如下所示,但它不起作用。我将非常感谢宝贵的意见。提前谢谢。

    UI

    navbarPage(
    title = "SHELL COMPANY",
    tabPanel("COMPANY INFO",
    fluidRow(
      column(4, selectInput("name","COMPANY NAME:", c("ALL", unique(as.character(cmp$`STD COMPANY NAME`))))),
      column(4, DT::dataTableOutput("table")
      ))),
    tabPanel("DIR INFO",
      fluidRow(
        column(4, selectInput("dir","DIRECTOR NAME:", sort(unique(as.character(cmp$`DIR NAME`)))))),
      column(4, DT::dataTableOutput("table2"))
    ))
    

    SERVER

    function(input,output)
    {
    data <- cmp
    rv <- reactiveValues() 
    observe({
    rv$table <-  cmp
    if(input$name!="ALL"){
      rv$table <- data[data$`STD COMPANY NAME`==input$name,]
    } 
    })
    output$table <- DT::renderDataTable(DT::datatable(
    {
      rv$table
    }))
    output$table2 <- DT::renderDataTable(DT::datatable(
    {
      data2 <- rv$table
      data2 <- subset(rv$table, data$'DIR NAME'==input$dir, select=c(`STD COMPANY NAME`, `DIR NAME`))
      data2
    }))}
    

1 个答案:

答案 0 :(得分:0)

如果您提供的代码段是关于错误的应用中的所有内容,则您似乎尝试将output$table分配给output$table2data2 <- table处的另一个变量output$... }。你不能这样分配?reactiveValues()。尝试创建单独的表(rv <- reactiveValues() observe({ rv$table <- cmp if(input$name!="ALL"){ rv$table <- data[data$`STD COMPANY NAME`==input$name,] } }) 可能会派上用场),并在两个输出中使用它,所以逻辑看起来像这样:

output$table

然后在output$table2std::vector<double>

中使用它