这个怎么样,您可以使用DT
库。通过添加filter
选项,用户可以定义一个希望的不同组成部分,看看什么车过来了。
library(shiny)
library(DT)
shinyApp(ui = shinyUI(fluidPage(
titlePanel("Interesting Cars"),
sidebarLayout(
sidebarPanel(
helpText("This is a side bar")),
mainPanel(
DT::dataTableOutput("view")
)
)
)),
server = function(input, output) {
output$view <- DT::renderDataTable({
datatable(mtcars,
filter = "top"
)
})
})
编辑
如果确实如此重要以添加另一列来指示它是否“有趣”,那么如果您打算让用户在不同的条件下分配它,那么将会有更多的代码要写入。这是一个只有mpg
的例子。这里的基本思想是将数据分配给reactiveValues
函数。它可以随意修改。这可以明显改善更多(因为它会继续添加列),但它表明了这个概念。
shinyApp(ui = shinyUI(fluidPage(
titlePanel("Interesting Cars"),
sidebarLayout(
sidebarPanel(
helpText("This is a side bar"),
uiOutput("mpg"),
actionButton("add_label", "Mark Interesting")
),
mainPanel(
DT::dataTableOutput("view")
)
)
)),
server = function(input, output) {
values <- reactiveValues(
mydata = mtcars
)
output$mpg <- renderUI({
numericInput("mpg_input", "MPG Cutoff?",
value = 15
)
})
output$view <- DT::renderDataTable({
datatable(values$mydata
)
})
observeEvent(input$add_label, {
validate(
need(!is.null(input$mpg_input), "need mpg value")
)
values$mydata <- data.frame(values$mydata,
Interesting_Flag =
ifelse(values$mydata$mpg > input$mpg_input,
"Interesting",
"Not Interesting"))
})
})
你刚刚在谈论过滤数据到用户想要什么吗? – cdeterman
潜在?但是,每个项目都必须单独选择。我不是在寻找数据表功能,而是在寻找关于数据集的用户意见。 – maloneypatr
也许你可以提供更多的例子来展示你对mtcars数据集的含义。给我们一个例子,说明你定义'有趣'的意思。 – cdeterman