闪亮DT预选一列

时间:2018-06-22 08:38:39

标签: r shiny dt

我有一个闪亮的应用程序,其中包含两个DT表。在表x1中,我们选择一行,即,如果我们选择x1中的第2行,则x2中的数据将根据此选择而变化。然后,我们选择一列,即x2中的第3列。

现在,我们更改x1中的选定行。结果,x2中的数据将被更新,并且列选择将被删除。我希望保留列选择。

使用虹膜数据集创建样本数据。

library(shiny)
library(DT)
library(caroline)
mydata <- groupBy(df=iris, by='Species', clmns=c('Sepal.Length','Sepal.Width','Petal.Length','Petal.Width'), aggregation='mean', full.names=TRUE, na.rm=TRUE)
mydata2 <- iris
shinyApp(
  ui = fluidPage(
    fluidRow(
      DT::dataTableOutput('x1')
    ),
    fluidRow(
      DT::dataTableOutput('x2')
    )
  ),
  server = function(input, output, session) {
    data <- reactive({
         if(is.null(input$x1_rows_selected)){
            ind.x1 <- which(mydata2$Species== "setosa")
         }else{
            ind.x1 <- which(mydata2$Species== row.names(mydata)[input$x1_rows_selected])
         }
         return(mydata2[ind.x1, ])
    })

    output$x1 <- DT::renderDataTable({
        mydata 
    }, selection = list(mode = 'single', target = 'row'))

    output$x2 = DT::renderDataTable({
      data()
    }, selection = list(mode = 'single', target = 'column'))
  }
)

0 个答案:

没有答案