转发传染媒介的发光的Radiobuttons

时间:2018-03-15 17:12:20

标签: r vector shiny radio-button

我遇到了另一个问题,我显然无法自己解决。

我正在寻找一种通过无线电按钮或类似方式选择传递矢量的方法。

if(!require(shiny)){
  install.packages("shiny")
  require(shiny)
}

if(!require(tidyverse)){
  install.packages("tidyverse")
  require(tidyverse)
}

if(!require(lubridate)){
  install.packages("lubridate")
  require(lubridate)
}


prodpromonat <- tibble(prodmonat= as.Date(c("2008-11-01", "2008-12-01", "2009-01-01", "2009-02-01", "2009-03-01")), n = c(1769, 3248, 3257, 2923, 3260))

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(

    fluidRow(
      sliderInput(
        "zeitraum",
        "Produktionszeitraum",
        min = min(prodpromonat$prodmonat),
        max = max(prodpromonat$prodmonat),
        value = c(max(prodpromonat$prodmonat)-30, max(prodpromonat$prodmonat))
      )
    ),

    fluidRow(
      radioButtons(
        "farbe",
        "Farbschema",
        choices = c("grau", "rot-grün", "blau-grau", "schwarz-weiß"),
        selected = "grau"
      )
    )
  ),

mainPanel(
  tabPanel(
    title = "produktion" ,
    plotOutput(
      outputId = "produktionsmenge"
    )
  )
)))

server <- function(input, output, session){

farbeninput <- reactive({
  switch(input$farbe,
         "grau" = c("#808080", "#808080"),
         "rot-grün" = c("#B22222", "#006400"),
         "blau-grau" = c("#1E90FF", "#696969"),
         "schwarz-weiß" = c("#000000", "FFFFF0")
  )
})

data <- reactive({
  df <- filter_produktionsmenge()
})

filter_produktionsmenge <- reactive({
  min <- filter(prodpromonat, prodmonat >= floor_date(input$zeitraum[1], "month"))
  max <- filter(prodpromonat, prodmonat <= floor_date(input$zeitraum[2], "month"))
  semi_join(min, max, by = "prodmonat")
})

output$produktionsmenge <- renderPlot({
  ggplot(data(), aes(prodmonat, n)) +
    geom_bar(stat="identity", aes(fill = factor(as.numeric(month(prodmonat) %% 2 == 0)))) +
    scale_fill_manual(values=rep(c("#000000", "#008080"))) +
    xlab("Produktionsmonat") +
    ylab("Anzahl produzierter Karosserien") +
    theme(legend.position = "none")
})

}

shinyApp(ui, server)

所以我基本上想要用scale_fill_manual值替换由radiobuttons转发的向量。

我试图将矢量直接分配给无线电按钮输入,但无法正常工作。

然后我提出了使用开关盒的想法。但是,当通过无功开关输入替换scale_fill_manual中的向量时,它会显示错误“尝试复制'闭合'类型的对象'”。我不确定,这个错误来自哪里以及如何避免它。希望你能帮忙吗?

我希望你原谅我没有翻译代码中的德语单词和缩写:)

0 个答案:

没有答案