[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