Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用选定行将r中的另一个表子集_R_Shiny_Dt - Fatal编程技术网

使用选定行将r中的另一个表子集

使用选定行将r中的另一个表子集,r,shiny,dt,R,Shiny,Dt,我对在R中使用DT还不熟悉。基本上,我在这里尝试的是使用第一个表中的select值来过滤第二个表 我的Ui.r是 library(shiny) library(shinydashboard) ui <- dashboardPage(skin="green", dashboardHeader(title="Inventory Management"), dashboardSidebar(disable = TRUE),

我对在R中使用DT还不熟悉。基本上,我在这里尝试的是使用第一个表中的select值来过滤第二个表

我的Ui.r是

library(shiny)
library(shinydashboard)
 ui <- dashboardPage(skin="green",
                dashboardHeader(title="Inventory Management"),
                dashboardSidebar(disable = TRUE),
                dashboardBody(fluidRow(column(4,box(status="success",
                             uiOutput("Firstselection"),
                             br(),
                             uiOutput("Secondselection"))
                             ),
                             column(4,infoBoxOutput("salesbox")),
                             column(4,infoBoxOutput("Runoutbox")),
                             column(4,infoBoxOutput("Excessbox"))),
                             actionButton("actionbtn","Run"),
                fluidRow(tabBox(tabPanel(
                  DT::dataTableOutput(outputId="table"),title = "Stock Available for the category chosen",width = 12),
                  tabPanel(DT::dataTableOutput(outputId="asso"),title = "Associated products",width = 12)))

                ))
库(闪亮)
图书馆(shinydashboard)

ui在以下方面找到通用解决方案: 从这里改编:

库(闪亮)
图书馆(DT)

服务器两点:1)您尝试过这个吗?2) 您的示例不可复制:/Thank for the solution:)
server <-function(input, output, session) {
observeEvent(input$actionbtn, {source('global.r',local = TRUE)
#choose sub category based on category
output$Firstselection<-renderUI({selectInput("ray",
                                             "Category:",
                                             c("All",unique(as.character(bestpred$lib_ray))))})
output$Secondselection<-renderUI({selectInput("sray",
                                              "Sub Category:",
                                              c("All",unique(as.character(bestpred[bestpred$lib_ray==input$ray,"lib_sray"]))))})

# Filter data based on selections
output$table <- DT::renderDataTable({
  data <- bestpred
  if (input$ray != "All"){
    data <- data[data$lib_ray == input$ray,]
  }
  if (input$sray != "All"){
    data <- data[data$lib_sray == input$sray,]
  }
  data
},filter="top"
)
output$salesbox<-renderInfoBox({infoBox("Total Sales",sum(data()$Total_Sales),icon = icon("line-chart"))})
output$Runoutbox<-renderInfoBox({infoBox("Total Runout",sum(data()$status=="Runout"),icon = icon("battery-quarter"))})
output$Excessbox<-renderInfoBox({infoBox("Total excess",sum(data()$status=="Excess"),icon = icon("exclamation-triangle"))})



output$asso <- DT::renderDataTable({
  asso <- test1
  s=data[input$tablatable_rows_selected,1]
  asso <- asso[asso$num_art == s,]
  asso
},filter="top")



})}
library(shiny)
library(DT)

server <- shinyServer(function(input, output, session) {

  output$x1 = DT::renderDataTable(cars, server = FALSE)

  output$x2 = DT::renderDataTable({
    sel <- input$x1_rows_selected
    if(length(cars)){
      cars[sel, ]
    }

  }, server = FALSE)  

})


ui <- fluidPage(

  fluidRow(
    column(6, DT::dataTableOutput('x1')),
    column(6, DT::dataTableOutput('x2'))
  )

)

shinyApp(ui, server)