【问题标题】:Can someone explain how endpoints function works?有人可以解释端点功能是如何工作的吗?
【发布时间】:2021-05-11 10:07:46
【问题描述】:

我不明白为什么我会收到来自端点函数的输出,而我期待的是别的东西。我写了一个伪代码,有人可以解释一下机制吗?

y1<-rep(1,times=750)
y1<-xts(y1, order.by = Sys.Date()-1:750)
endpoints(y1,'days',250)

使用此代码,R 返回0 123 347 484 713 750。它不应该返回 250 500 750 吗?或者它将如何返回这些索引? 谢谢

【问题讨论】:

    标签: r time-series xts endpoint


    【解决方案1】:

    看起来endpoints 总是在年底产生一个点,而k 从年初开始计算:

    y1[endpoints(y1,'days',k=250)]
               [,1]
    2019-09-07    1
    2019-12-31    1
    2020-09-06    1
    2020-12-31    1
    2021-02-06    1
    

    以上结果是一年中的第 250 天或年末。
    没有在文档中找到明确提及这一点,但源代码显示year 起着关键作用,即使算上days

    
    days = {
        ixyday <- posixltindex$year * 1000L + 1900000L + posixltindex$yday
        .Call("endpoints", ixyday, 1L, k, addlast, PACKAGE = "xts")
      }
    

    要获取您要查找的索引,您可以使用%%(模运算符):

    which(1:750%%250==0)
    [1] 250 500 750
    

    【讨论】:

    • @Tamas F,它回答了你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2023-01-18
    • 2015-11-25
    • 2011-09-12
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多