반응 형 SelectInput이 필요한 Shinyapp를 테스트 중이며 사용자가 전송을 선택하고 State 필드를 새로 고침해야합니다. 선택한 전송이있는 상태 만 나타납니다. Transport, International_Long (8 States), International_Short (2 States), National_Short (9 States), National_Long (All 23 States)의 4 가지 종류가 있습니다."observe"가 포함 된 대화 형 메뉴
내 코드는 DataTable에서 작동하지만 플롯에서는 작동하지 않습니다!
"Plot"탭을 선택하면 메뉴의 반응이 멈추고 모든 전송에 대해 모든 상태가 나타납니다.
미리 감사드립니다.
내 애플 : 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
당신의 관찰자가 이미input$Transport2
에 필요한 의존성을 소개하고있다
selectedData <- reactive({
TRANSPORT = isolate(input$Transport2)
STATE = input$State2
mydata[mydata$Transport %in% TRANSPORT & mydata$State %in% STATE,]
})
:3210
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)
})
})
(여러 패키지를 설치하는 언급하지 않기 위하여). 먼저 코드에서 섹션을 제거하고 (대신 작은 데이터 세트를 시뮬레이트하고 그래프를 간단히 바꾸기) 문제가 남아 있는지 확인할 수 있습니다. 그렇다면 여기 호기심 많은 문제가있는 것 같습니다 –