【发布时间】:2020-10-28 16:23:53
【问题描述】:
我正在使用 R Shiny 输出一个表格,但我在过滤 reactive 部分中的 renderDataTable 时遇到了问题。我在这个例子中使用了mtcars 表,我试图通过type 过滤:
library(shiny)
library(DT)
ui <- fluidPage(
titlePanel("MTCARS"),
sidebarLayout(
sidebarPanel(id="sidebar",
textInput("type",
label = "Type",
placeholder = "Type"),)
,
mainPanel(
dataTableOutput("data")
)
)
)
server <- function(input, output, session) {
selected <- reactive({
if (length(input$type) != 0) {
mtcars$type %in% input$type
} else {
TRUE
}
})
output$data <- renderDataTable(mtcars[selected(),])
}
shinyApp(ui = ui, server = server)
目前,mtcars$type %in% input$type 根据用户输入的type 过滤表。但是,我想修改它以便:
- 文本不必完全匹配。如果用户键入
Hond,将显示包含Honda Civic的行。 - 该表需要从整个表开始。尽管有 if/else 语句,但目前它在启动时没有行。
【问题讨论】:
-
第一点你可以看看
grep和grepl函数