Мне, должно быть, здесь не хватает чего-то небольшого, но я хочу использовать input$test
в качестве имени столбца и по умолчанию использовать строку «NEW_COLUMN», если пользователь этого не добавит. Я хотел сделать это, используя rlang
инфикс %||%
, где «NEW_COLUMN» используется, когда нет input$test
, но это, похоже, не работает
library(shiny)
library(rlang)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput("test", "Mutated Column Name")
),
mainPanel(
tableOutput("table")
)
)
)
server <- function(input, output) {
colname <- reactive({
# this logic needs to be cleaned up
input$test %||% sym("NEW_COLUMN")
})
output$table <- renderTable({
iris %>%
mutate(!!colname() := "test")
})
}
shinyApp(ui = ui, server = server)
Почему не эта работа? Разве input$test
на самом деле не NULL
до того, как пользователь вводит значение для textInput
?