【问题标题】:How can I use daterangenput for time series plot?如何将 daterangenput 用于时间序列图?
【发布时间】:2016-01-22 06:26:36
【问题描述】:

我有数据要绘制为用户上传的系列。但是,数据是一年的,我想显示 2 个月,例如 1 月和 2 月,当用户需要分析这几个月的模式时。这就是为什么我认为 dateRangeInput 可能有用但我不知道如何与 plot 绑定?

数据:http://www.filedropper.com/quo

已编辑:我使用响应式参数来获取输入。但是,它显示另一个错误: charToDate(x) 中的错误: 字符串不是标准的明确格式。

 library(shiny)
  shinyUI(fluidPage( 
    titlePanel("Time Series Study"), 
     sidebarLayout(
      sidebarPanel(
       fileInput('file2', 'Choose Quotation File:', accept=c('text/csv', 'text/comma-separated-values,text/plain', '.csv'), multiple = FALSE),
       dateRangeInput("range",
                 "Date Range:",
                 start = "start",
                 end   = "end",
                 min = "2012.01.01",
                 max   = "2012.01.31")
        ),

        mainPanel(
        plotOutput("distPlot")  )  ) ))


 #server.r


  library(shiny)
  library(ggplot2)
     shinyServer(function(input, output) {


     dataInput <- reactive({

     `uploadedsamplefile` <- read.csv(input$file2$datapath, sep=";",check.names = FALSE)
      uploadedsamplefile1 <- uploadedsamplefile
      xx<-cbind(`uploadedsamplefile1`[1:4])
      xx$`Datee` <- as.Date( xx$`Datee`, '%d.%m.%Y')
      xx$`Datee` <- subset( xx$`Datee`,   as.Date("input$start") <= xx$`Datee`  &&  xx$`Datee` <= as.Date("input$end"))
    })
     output$distPlot <- renderPlot({
       y <- ggplot(xx, aes(x=`Datee`)) +  geom_line(aes(y=(`A`), colour = "A")) + geom_line(size=1,aes(y=(`B`), colour = "B")) + 
  geom_line(size=1,aes(y=(`C`), colour = "C")) 
       y }) })

【问题讨论】:

  • 创建一个reactive() 表达式来存储.csv 文件中的数据,然后使用daterangeinput 根据范围对数据进行子集化
  • 我尝试使用但后来我遇到了新问题。

标签: r ggplot2 shiny time-series timeserieschart


【解决方案1】:

要访问示例中的开始日期和结束日期,请使用 input$range[1] 作为开始日期,使用 input$range[2] 访问结束日期。

【讨论】:

  • 我有一个关于 charToDate(x) 中的错误:字符串不是标准的明确格式。
  • 您很可能会收到此错误,因为您示例中的日期不是标准日期格式。试试:min="2012-01-01"' and 'max= "2012-01-01"。此外,开始和结束参数也需要正确格式化的日期。在上面的示例中,您分配字符串 "start" 和 '"end"' !
  • 它不起作用,因为我用 xx$Datee Datee, '%d.%m.%Y') 定义了我的数据向量。即使我改变了,我又遇到了同样的错误。字符串不是标准的明确格式
  • 我不是在谈论向量。 ui 部分中的 start/end 参数不是有效日期。例如: start ="start" 将字符串提供给参数start,其中需要日期!您要么必须分配一个有效的日期,如 "2012-01-31" ( 或其他格式,如 (as.Date("2012.01.31", "%Y.%m.%d ) 或一个有效的日期变量。
猜你喜欢
  • 2014-05-17
  • 1970-01-01
  • 2018-05-25
  • 2021-02-28
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多