我有以下两个数据框:
Name<-c("John","Bob","Jack")
Number<-c(3,3,5)
NN<-data.frame(Name,Number)
d1<-c("a",NA,"b")
d2<-c("a","a","b")
d3<-c(NA,NA,"b")
d4<-c("a","c","b")
d5<-c(NA,"b","b")
NN2<-data.frame(Name,d1,d2,d3,d4,d5)
NN
包含名称和NN2
中每个名称的非NA输入数。我创建了一个闪亮的应用,其中显示了NN
的数据表。我希望能够单击每个名称,并获得带有NN2
相对行的第二张表,就像您单击John
一样。问题在于,与其通过行和列来识别我选择的名称,还不如:if(input$x3_cells_selected[,1]==1&input$x3_cells_selected[,2]==1)
我想通过名称自动识别它。这意味着当我在第一张表中单击John
时,该算法将不会看到第一列第一行,但会在第二张表中搜索John
数据。
#ui.r
library(shiny)
fluidPage(
fluidRow(
DT::dataTableOutput('x3')
),
fluidRow(
DT::dataTableOutput('x4')
)
)
#server.r
library(shiny)
library(DT)
shinyServer(function(input, output, session) {
output$x3 = DT::renderDataTable(datatable(NN,selection = list(target="cell",mode="single")))
second<-reactive({
req(input$x3_cells_selected)
if(input$x3_cells_selected[,1]==1&input$x3_cells_selected[,2]==1){
NN2[1,2:6]
}
})
output$x4 = DT::renderDataTable(datatable(second(),rownames = F))
})