Я новичок в R и Shiny и мне нужна помощь. Я написал функцию для интерактивного визуального элемента, в которой используются два аргумента: фрейм данных и логическое значение. Логическое значение контролируется одним виджетом флажка.
Это общий код, который я написал для визуальной функции:
function_name <- function(df, boolean_value) {
if (boolean_value == TRUE) {
plot <- ## code for first version of plot
} else {
plot <- ## code for second version of plot
}
return(plot)
}
Когда я запускаю эту функцию самостоятельно, я не получаю ошибки, хотя, когда я запускаю свое блестящее приложение, я получаю сообщение об ошибке « Ошибка: необходимо указать символ или строку в качестве аргумента ». Я протестировал два варианта сюжета самостоятельно, и они отлично работают. Я также протестировал всю функцию самостоятельно, используя function_name(desired_df, "TRUE")
или function_name(desired_df, "FALSE")
(desired_df
- это фрейм данных, для которого я хочу, чтобы функция работала), и, опять же, он дает результат, который я ищу. Проблема возникает, когда я запускаю блестящее приложение.
Для серверной части я поставил:
server <- function(input, output) {
output$rendered_function_name <- renderPlot({
return(function_name(desired_df, input$checkbox_input))
})
}
Для части пользовательского интерфейса я поставил:
page_1 <- tabPanel(
"Page 1 Title",
titlePanel("Visual Title"),
sidebarLayout(
sidebarPanel(
checkboxInput(
inputId = "checkbox_input",
label = "Checkbox Label",
value = TRUE)
),
mainPanel(
plotOutput(
"rendered_function_name"
)
)
)
)
ui <- navbarPage("App Title",
page_1
)
И для часть приложения, которую я поставил:
shinyApp(ui = ui, server = server)
function_name
, server
, page_1
и ui
, каждый запускается самостоятельно без проблем. Проблемы возникают только на этом последнем шаге, когда я пытаюсь запустить блестящее приложение. Может кто поможет?