我有一个闪亮的应用程序,其中包含两个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'))
}
)