比较Shiny

时间:2018-04-13 13:01:07

标签: r shiny

我正在尝试构建一个闪亮的应用,允许用户通过selectInput选择一个时间段,然后了解所选时间段。 我想要实现的一件事是与选定的一个之前的最后一个周期进行简单的比较。我只是从句号t-1的值中减去所选时段t的值。

到目前为止,我已经通过额外的selectInput来解决此问题,以便为减法选择句点。 请考虑这个可重复的例子:

library(tidyverse)
library(shiny)

period <- factor(c("Q1", "Q2", "Q3", "Q4"))
value <- 1:4

df <- data_frame(period, value)

ui <- fluidPage(
  selectInput("select1", "select quarter", choices  = unique(df$period)),
  selectInput("select2", "select preceeding quarter", choices  = unique(df$period)),
  verbatimTextOutput(outputId = "val")

)

server <- function(input, output) {
  output$val <- renderText({
    (df %>% 
       filter(period == input$select1) %>% 
       select(2) %>% unlist()) - 
      (df %>% 
         filter(period == input$select2) %>% 
         select(2) %>% unlist())
  })

}
shinyApp(ui = ui, server = server)

我认为这是次优解决方案。最理想的是,我只想使用1个输入和app来自动选择减法的前值。

有没有办法启用此功能?我自发地想到利用因子水平的有序性质,但是搜索这个没有产生任何结果。

1 个答案:

答案 0 :(得分:1)

我们可以在selectInput中使用一个ui,使用match查找'{1}}的'句点'索引,从'df'到{d}行获得前一季度“价值”的slice

diff

-output

enter image description here