2016-05-31 4 views
0

Я занимаюсь разработкой блестящего приложения, чтобы дать пользователям возможность выбирать график временной шкалы для разных переменных. Для иллюстрации я хотел бы использовать следующие данные:Использование googleVis in Shiny

datTL <- data.frame(Position=c(rep("President", 3), rep("Vice", 3)), 
        Name=c("Washington", "Adams", "Jefferson", 
          "Adams", "Jefferson", "Burr"), 
        start=as.Date(x=rep(c("1789-03-29", "1797-02-03", 
              "1801-02-03"),2)), 
        end=as.Date(x=rep(c("1797-02-03", "1801-02-03", 
             "1809-02-03"),2))) 

Вот что мне удалось придумать:

#ui.R 
library(shiny) 
library(googleVis) 
shinyUI(bootstrapPage(
    selectInput('id','select a name',choices = as.character(unique(datTL$Name))), 
    htmlOutput('timeline') 
)) 

#server.R 
shinyServer(function(input,output){ 
    datainput=reactive({daTL[daTL$Name==input$id,]}) 
    output$timeline=renderGvis({gvisTimeline(data=datTL, 
          rowlabel="Name", 
          barlabel="Position", 
          start="start", 
          end="end")}) 
}) 

С моим кодом, я могу создать приложение с выпадающим списком включая имена президентов и график времени для всего президента. То, с чем я борюсь, - это использовать ссылку выпадающего списка с графиком временной шкалы, чтобы пользователь мог отфильтровать сюжет, выбрав имена из списка. Может кто-нибудь, пожалуйста, помогите мне?

ответ

0

Вот код рабочего сервера. В вашем коде была какая-то опечатка, а также реактивные используются как datainput().

shinyServer(function(input,output){ 
    datainput=reactive({datTL[datTL$Name==input$id,]}) 
    output$timeline=renderGvis({ 
     gvisTimeline(data=datainput(), 
              rowlabel="Name", 
              barlabel="Position", 
              start="start", 
              end="end")}) 
}) 
+0

Hi @warmoverflow, спасибо за ваш ответ. Мне просто интересно, можно ли включить функцию 'datainput' в функцию' renderGivs'? – Cypress

+0

Должен работать. Просто удалите 'реактивный'. Это была бы не функция, а просто переменная. –