我正在测试需要被动SelectInput的Shinyapp,用户选择一个Transport并且我需要刷新状态字段,我想只显示具有所选传输的状态。我有4种运输方式,International_Long(8个国家),International_Short(2个国家),National_Short(9个国家)和National_Long(所有23个国家)。带有“观察”的交互式菜单
我的代码正在为DataTable工作,但它不适用于剧情!
问题是当您选择“绘图”选项卡时,菜单的反应性会停止并显示所有运输状态。
在此先感谢!
我的应用程序:https://luisotavio.shinyapps.io/rcharts2/
我的数据是在这里:https://drive.google.com/file/d/0B1jMuJ4_u7e-elB4QV9WRkRKdEU/edit?usp=sharing
读取数据
mydata<-read.delim("mydata.txt",sep="\t",dec=",",header=TRUE)
ui.R
require(rCharts)
options(RCHART_LIB = 'polycharts')
shinyUI(
navbarPage("TEST",
tabPanel("Transport Survey",
pageWithSidebar(
headerPanel('Transport Survey'),
sidebarPanel(
selectInput('Transport2', 'Select a Transport:',levels(droplevels(mydata$Transport)),selected=levels(droplevels(mydata$Transport))[1]
),
selectInput('State2', 'Select a State:', levels(droplevels(mydata$State)),selected=levels(droplevels(mydata$State))[1]
),
width = 3
),
mainPanel(
tabsetPanel(tabPanel("Table",dataTableOutput("mytable")),
tabPanel("Plot",showOutput('myplot', 'polycharts')))
)
)
))
)
server.R
library(shiny)
library(rjson)
library(rCharts)
options(RCHART_WIDTH = 800)
shinyServer(function(input, output,session) {
observe({
TRANSPORT = input$Transport2
updateSelectInput(session, "State2", choices = levels(droplevels(mydata$State[mydata$Transport %in% TRANSPORT])),selected = levels(droplevels(mydata$State[mydata$Transport %in% TRANSPORT]))[1]
)
})
selectedData <- reactive({
TRANSPORT = input$Transport2
STATE = input$State2
mydata[mydata$Transport %in% TRANSPORT & mydata$State %in% STATE,]
})
output$mytable = renderDataTable({
selectedData()
})
output$myplot<- renderChart2({
mydata2<-selectedData()
p1<-rPlot(Value ~ Company, color = 'Company', data = mydata2, type = 'bar')
p1$guides(
color = list(
numticks = length(levels(droplevels(mydata2$Company)))
),
y = list(
min = 0,
max = 10
)
)
return(p1)
})
})
这将真正帮助,如果你做,并不需要下载一个重复的例子,(更不用说安装几个包)。你可以从代码中删除部分(模拟一个小数据集而不是使用你的,用简单的数据代替图),并确保问题依然存在。也就是说,这里似乎确实存在一个好奇的问题 – 2014-09-13 03:43:42