2016-05-31 54 views
0

我正在開發一個閃亮的應用程序,讓用戶能夠爲不同的變量選擇時間線圖。爲了說明,我想用下面的數據:在Shiny中使用googleVis

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

嗨@warmoverflow,謝謝你的回答。我只是想知道是否可以將'datainput'函數包裝到'renderGivs'函數中? – Cypress

+0

應該工作。只要刪除「反應」。這不是一個函數,只是一個變量。 –