[R-es] Actualizar tabla en shiny

Guiiiermo@Vi@ue m@iii@g oii uv@es Guiiiermo@Vi@ue m@iii@g oii uv@es
Mie Feb 8 17:56:21 CET 2023


Hola,

Quería preguntar si alguien sabe cómo se puede utilizar el resultado de modificar una tabla con el argumento editable = TRUE de datatable, para actualizar una segunda tabla. Adjunto un código de ejemplo y lo copio también aquí abajo. 

Lo que yo querría por ejemplo es poner en la columna 'replacements' de la tab1 los valores 1 y 2 (clicando en las celdas de esa columna y escribiendo a mano ese valor, gracias a editable = TRUE) y que en la tab2 aparecieran esos valores cambiados.

He encontrado este enlace con la misma idea

https://stackoverflow.com/questions/31744300/using-the-values-of-rendered-datatable-in-later-analysis

pero no sé llevar a cabo los procedimientos que se comentan en la respuesta.

Gracias de antemano.

Saludos,

Guillermo

----

library(shiny)
library(DT)
library(dplyr)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      h4("App para sustituir valores. A partir de sustituir valores en la tabla de arriba, el 
         objetivo es actualizar la tabla de abajo."),
    ),
    mainPanel(
      dataTableOutput("tab1"),
      br(),
      dataTableOutput("tab2")
    )
  )
)

server <- function(input, output) {
  
  output$tab1 <- renderDataTable({
    df1 <- data.frame(values_to_replace = c("A+", "B-")) %>%
      mutate(replacements = NA)
    
    datatable(df1, rownames = FALSE, editable = TRUE)
  })
  
  output$tab2 <- renderDataTable({
    df1 <- data.frame(observations = c("A+", "B-", 1, 5, "B-", 7, "A+", "B-"))
    
    vals_orig <- c("A+", "B-")
    #vals_repl <- df1$replacements # ESTO ES LO QUE DEBE VENIR DE tab.
    vals_repl <- c(10, 20)
    
    df2 <- df1 %>%
      mutate(observations_repl = plyr::mapvalues(observations, from = vals_orig, to = vals_repl))
    
    datatable(df2, rownames = FALSE)
  })
}

shinyApp(ui, server)

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: app_example_data_replacement.R
Type: application/octet-stream
Size: 1027 bytes
Desc: 
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20230208/ab62cf0b/attachment.obj>


Más información sobre la lista de distribución R-help-es