【发布时间】:2017-11-26 17:44:34
【问题描述】:
我正在尝试做一个与 Shiny 类似的应用程序:动态数据帧构造; renderUI,观察,reactiveValues。我想创建一个选项来选择例如列表中的气缸数。这样表格在选择数字后会自动更新。有人可以向我解释我做错了什么吗?正如你所看到的图形程序不能正常工作。
我的代码:
用户界面:
library(shiny)
hw <- mtcars
shinyUI(fluidPage(
title = 'Examples of DataTables',
sidebarLayout(
sidebarPanel(
radioButtons(
inputId="radio",
label="Variable Selection Type:",
choices=list(
"All",
"Manual Select"
),
selected="All"),
conditionalPanel(
condition = "input.radio != 'All'",
selectizeInput(
'show_vars',
'Columns in cars to show:',
choices=names(hw),
selected = names(hw),
multiple =TRUE),
uiOutput("category1")
)
),
mainPanel(
verbatimTextOutput("summary"),
tabsetPanel(
id = 'dataset',
tabPanel('hw', dataTableOutput('mytable1'))
)
)
)
))
服务器:
library(shiny)
library(ggplot2)
shinyServer(function(input, output) {
Data <- reactive({
if(input$radio == "All"){
hw
} else {
hw[,input$show_vars,drop=FALSE]
}
})
output$category1 <- renderUI({
selectizeInput('cat1', 'Select cyl:', choices = c("All",sort(as.character(unique(hw$cyl)))),selected = "All")
})
df_subset <- eventReactive(input$cat1,{
if(input$cat1=="All") {df_subset <- hw}
else{df_subset <- hw[hw$Position == input$cat1,]}
})
output$mytable1 <- renderDataTable({
df_subset()
hw[, input$show_vars, drop = FALSE]
})
})
【问题讨论】: