使用筛选选项从数据表中选择行:RShiny
我有一个启用了筛选器的数据表,我想从该数据表中读取选定的行 如果未应用筛选器,则输入$table_rows_selected可以正常工作,但一旦对数据应用筛选器,则不会返回正确的行索引使用筛选选项从数据表中选择行:RShiny,shiny,Shiny,我有一个启用了筛选器的数据表,我想从该数据表中读取选定的行 如果未应用筛选器,则输入$table_rows_selected可以正常工作,但一旦对数据应用筛选器,则不会返回正确的行索引 ui <- function(id) { fluidPage( title = "Job Tracker", fluidRow( column(width=6, selectInput("pickvalue", label = "Pick a Va
ui <- function(id) {
fluidPage(
title = "Job Tracker",
fluidRow(
column(width=6,
selectInput("pickvalue", label = "Pick a Value", choices = unique(iris$Species))
)
),
br(),
fluidRow(
column(12,
DT::dataTableOutput("job_data")
)
),
br(),
fluidRow(
column(12,DT::dataTableOutput("x4"))
)
)
}
server <- function(input, output, session)
{
output$job_data <- DT::renderDataTable({
datatable(iris[iris$Species==input$pickvalue,],selection = "single")
})
output$x4 <- DT::renderDataTable({
s <- input$job_data_rows_selected
datatable(iris[s,])
})
}
ui要返回以前选择的行索引,您可以添加一些reactiveValues
这样跟踪索引,请注意索引受数据的影响,因此如果您选择index=4并切换数据,索引=4将应用于新数据:
library(shiny)
library(DT)
ui <- function(id) {
fluidPage(
title = "Job Tracker",
fluidRow(
column(width=6,
selectInput("pickvalue", label = "Pick a Value", choices = unique(iris$Species))
)
),
br(),
fluidRow(
column(12,
DT::dataTableOutput("job_data")
)
),
br(),
fluidRow(
column(12,DT::dataTableOutput("x4"))
)
)
}
server <- function(input, output, session){
v <- reactiveValues()
v$s <- NULL
data <- reactive({
iris[iris$Species==input$pickvalue,]
})
output$job_data <- DT::renderDataTable({
datatable(data(),selection = "single")
})
observe({
if(!is.null(input$job_data_rows_selected)){
v$s <- input$job_data_rows_selected
}
})
output$x4 <- DT::renderDataTable({
datatable(data()[v$s,])
})
}
shinyApp(ui, server)
库(闪亮)
图书馆(DT)
谢谢你的回复。我的问题是,当我更改种类,然后选择任何行时,例如,选择了行索引编号15,但选择的行返回的是行的顺序编号,而不是实际行索引,即,如果选择的行是从顶部算起的第4行,则返回4,而不是15查看编辑,您需要将行名设置为空谢谢您,这真的很有帮助。@AwaisHassan
data <- reactive({
data <- (iris[iris$Species==input$pickvalue,])
rownames(data) <- NULL
data
})