У меня есть это простое блестящее приложение, которое отображает в текстовом поле любую строку, которую выбирает пользователь. Я хочу, чтобы за раз выбиралась только одна строка, поэтому я установил для параметра DT
значение selection = 'single'
, которое правильно отменяет выбор любой строки из таблицы при нажатии на другую.
И все же в текстовом поле сохраняется имя строки, которую я не выбрал, щелкнув другую, и новое имя добавляется после имени ранее выбранной строки.
Я заметил, что на самом деле я могу удалить из текстового поля любую ранее выделенную строку, дважды щелкнув по ней (то, что визуально не влияет на таблицу).
В моем реальном приложении у меня есть функция построения графика, которая будет принимать только одно значение из таблицы, поэтому мне нужно найти способ отправить через input$x_rows_selected
одно и только одно значение.
library(shiny)
library(DT)
# Define UI for application that draws a histogram
ui <- shinyUI(fluidPage(
h1('A Server-side Table'),
fluidRow(
column(9, DT::dataTableOutput('x3')),
column(3, verbatimTextOutput('x4'))
)
))
# Define server logic required to draw a histogram
server <- shinyServer(function(input, output, session) {
# server-side processing
mtcars2 = mtcars[, 1:8]
output$x3 = DT::renderDataTable(mtcars2, server = TRUE, selection = 'single')
# print the selected indices
output$x4 = renderPrint({
s = input$x3_rows_selected
if (length(s)) {
cat('These rows were selected:\n\n')
cat(s, sep = ', ')
}
})
})
# Run the application
shinyApp(ui = ui, server = server)
s <- s[length(s)]
, но я бы предпочел понять, как управлятьinput$x_rows_selected
- person CptNemo   schedule 01.05.2016