#r #shiny
#r #блестящий
Вопрос:
У меня возникли проблемы с фильтрацией моего набора данных в моем блестящем приложении на основе checkboxInput.
Я предполагаю, что проблема заключается в неправильном форматировании checkboxInput.
Здесь у меня также есть примерный код:
x <- as.data.frame(matrix(data = 1:20,ncol=2))
colnames(x) <- c("Test1","Test2")
ui <- fluidPage(
checkboxGroupInput("icons", "Choose icons:", choices = 1:10),
textOutput("test"))
server <- function(input, output, session) {
output$test <- renderText({
req(input$icons)
tmp_input <- as.numeric(as.vector(input$icons))
tmp <- x %>%
dplyr::filter(Test1 %in% tmp_input)
return(tmp)
})
}
shinyApp(ui, server)
Сообщение об ошибке: аргумент 1 (тип ‘list’) не может быть обработан ‘cat’
Большое спасибо за вашу помощь!
Ответ №1:
tmp
это data.frame (и фактически также список). Вы возвращаете это, чтобы получить его отрисовку с помощью renderText
, которая использует cat
. Но cat
ожидает атомарные векторы и не может обрабатывать списки. Попробуйте комбинацию renderPrint
и verbatimTextOutput
:
library(shiny)
library(dplyr)
x <- as.data.frame(matrix(data = 1:20,ncol=2))
colnames(x) <- c("Test1","Test2")
ui <- fluidPage(
checkboxGroupInput("icons", "Choose icons:", choices = 1:10),
verbatimTextOutput("test"))
server <- function(input, output, session) {
output$test <- renderPrint({
req(input$icons)
tmp_input <- as.numeric(as.vector(input$icons))
tmp <- x %>%
dplyr::filter(Test1 %in% tmp_input)
return(tmp)
})
}
shinyApp(ui, server)