在Shiny中使用googleVis

时间:2016-05-31 13:15:00

标签: r 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")})
})

使用我的代码,我可以使用下拉列表创建一个应用程序,其中包括总统的姓名和所有总统的时间表图。我正在努力的是使用链接下拉列表和时间线图,以便用户可以通过从列表中选择名称来过滤图。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

这是工作服务器代码。你的代码中有一些拼写错误,反应也被用作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")}) })

if(condition)
    ;  // do nothing

// unrelated block
{
    // do something
}