Я занимаюсь разработкой приложения, в котором отображаю (большую) матрицу переходов Маркова в виде обновляемой клиентской стороны с данными.Конечно, мы можем сделать эту матрицу переходов редактируемой для пользователя.
Я хотел бы иметь возможность:
- после того, как пользователь отредактирует некоторые ячейки и затем нажмет кнопку обновления,
- для захвата всех значений во всех ячейках этого недавно отредактированного объекта данных (который был отредактирован на стороне клиента) и возврата его в R, скажем, в виде матрицы
Я бы тогда использовалэти значения обновляют матрицу / фрейм данных на стороне сервера, чтобы теперь они были новыми значениями.
Вот пример блестящего приложения, которое может реализовать это:
library(DT)
library(shiny)
ui <- function(input, output, session) {
fluidPage(
textOutput('edit'),
DTOutput('test'),
actionButton('actbut', label = 'click')
)
}
server <- function(input, output, session) {
rv <- reactiveValues( df = iris )
output[['test']] <- renderDT({
datatable(rv$df, editable = T)
}, server = F)
observeEvent(input$actbut, {
# -- Suppose the user manually changes
# --all entries in df in the
# --Species column to "setosa", clientside.
# -- I would like to be able to access the newly changed entries
# -- using some attribute of input$test_<something>;
# -- in the same vein of input$test_cell_clicked, etc.
})
}
shinyApp(ui = ui, server = server, options = list(port = 5858))
Если уже есть простой способЧтобы сделать это, пожалуйста, дайте мне знать.
Спасибо Yihui Xie за невероятную библиотеку.