【问题标题】:Error making line plot using xts R : cannot mix zero-length and non-zero-length coordinates使用 xts R 制作线图时出错:不能混合零长度和非零长度坐标
【发布时间】:2018-03-01 05:21:59
【问题描述】:

我正在尝试对两个数据帧进行切片,一个代表日期(Date),一个代表连续值,并使用 xts 折线图绘制它们。当我使用完整的日期帧时,它可以工作,但是当我切片到最后 7 个值时,它会引发以下错误。有什么想法吗?

段错误(xlim[1], y_grid_lines(get_ylim()[[2]]), xlim[2], y_grid_lines(get_ylim()[[2]]), : 不能混合零长度和非零长度坐标

    library(xts)

Date <- seq(as.Date("2018-01-01"), as.Date("2018-02-25"), by="days")
Date <- as.POSIXct(Date, format = "%Y-%m-%d %H:%M")

#Date <-tail #Works
Date <-tail(Date,7) #Doesn't Work

T1_EF <- matrix( rnorm(N*M,mean=23,sd=3), N, M)
Trial1_EF<- as.matrix(round(Trial1_EF, digits = 6))
T1_EF_counts <- apply(Trial1_EF, 2, function(x) length(na.omit(x)))

#c <-T1_EF_counts #Works
c <-tail(T1_EF_counts,7)#doesn't work


  datN <- data.frame(Date = Date, y = c)



  datN.ts <- xts(datN$y, order.by = datN$Date)
  plot(datN.ts)
  lines(datN.ts, col = 'Green')

【问题讨论】:

    标签: r xts


    【解决方案1】:

    我在这里找到了解决方案: https://github.com/joshuaulrich/xts/issues/156

    xls 不喜欢 y 值是常数。

    这里是编辑后的代码:

    library(xts)
    
    Date <- seq(as.Date("2018-01-01"), as.Date("2018-02-25"), by="days")
    Date <- as.POSIXct(Date, format = "%Y-%m-%d %H:%M")
    
    #Date <-tail #Works
    Date <-tail(Date,7) #Doesn't Work
    
    T1_EF <- matrix( rnorm(N*M,mean=23,sd=3), N, M)
    Trial1_EF<- as.matrix(round(Trial1_EF, digits = 6))
    T1_EF_counts <- apply(Trial1_EF, 2, function(x) length(na.omit(x)))
    
    #c <-T1_EF_counts #Works
    c <-tail(T1_EF_counts,7)#doesn't work
    
    
      datN <- data.frame(Date = Date, y = c)
    
    
    
      datN.ts <- xts(datN$y, order.by = datN$Date)
      plot(datN.ts, , ylim=c(300, 600))
      lines(datN.ts, col = 'Green')
    

    【讨论】:

      猜你喜欢
      • 2018-06-03
      • 2017-07-24
      • 2012-12-20
      • 2020-10-30
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      相关资源
      最近更新 更多