Я блестящий новичок и застрял на чем-то. У меня есть реактивный кадр данных, сохраненный как store$df
. Пользователь выбирает столбец и выбирает, какой он должен быть, если это ENUM, сервер наблюдает за этим и возвращаются все возможные комбинации в этом столбце.
Я пытаюсь переназначить каждый из этих входов в store$df
, в зависимости от ввода пользователя.
Когда я не включаю actionButton("changeValues", "Change all")
эту функцию, каждый из текстовые вводы отображаются, но как только я включаю их, они исчезают.
Как мне go переопределить все ячейки, которые переименованы в textInputs?
library(shiny)
ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
selectInput(inputId = "OldColumnName"), ## code missing!!!),
selectInput(
"type", "What type is this column?",
c("string", "int", "enum")
),
uiOutput('enum')
)),
mainPanel(
dataTableOutput("ResultsTable"),
)))
server <- function(input, session, output){session$onSessionEnded(stopApp)
store <- reactiveValues()
observeEvent(input$type, {
req(input$OldColumnName)
if(input$type == 'enum') {
oldCol <- input$OldColumnName
categories <- unique(store$df[oldCol])
numberOfCategories <- nrow(categories)
output$enum <- renderUI({
lapply(1:numberOfCategories, function(i) {
textInput(paste0("enum_",categories[i,1]), label = paste0(categories[i,1]))
})
actionButton("changeValues", "Change all")
})
}
})
observeEvent(input$changeValues, {
lapply(1:numberOfCategories, function(i) {
x <- paste0("enum_",categories[i,1])
print(x)
store$df[df[input$OldColumnName== paste0(categories[i,1])]] <- input[[x]]
})
})
store$df <- read_excel(inFile$datapath)
output$ResultsTable <- renderDT(
store$df
)
}
shinyApp(ui, server)