這個怎麼樣,您可以使用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