【问题标题】:Replace values in an xts object according to some events on specific dates in R根据 R 中特定日期的某些事件替换 xts 对象中的值
【发布时间】:2013-12-13 12:28:32
【问题描述】:

我有两个信号系列和一个数据系列,如下所示。

BuyDates<-seq(as.Date("2013/1/1"), as.Date("2013/3/1"), by = "5 days")

SellDates<-seq(as.Date("2013/1/1"), as.Date("2013/3/1"), by = "7 days")

data<- xts(c(rnorm(32,100,3)),seq(as.Date("2013/1/1"), as.Date("2013/2/1"), by = "days"))

我想要的是,dataBuyDates 获得买入信号的日期,data 的值应替换为1,对于SellDates,它应为-1。并且,在序列中的剩余天数,1 或 -1 应该被结转直到它得到相反的信号,并且对于直到第一个信号的天数,值应该被替换为NA

请帮忙

【问题讨论】:

    标签: r merge xts


    【解决方案1】:

    您可以像往常一样对data 进行子集化:

    data<- xts(rep(NA, 32),seq(as.Date("2013/1/1"), as.Date("2013/2/1"), by = "days"))
    data[BuyDates] <- 1
    data[SellDates] <- -1
    

    然后您可以使用na.locf 结转非NA 值。

    na.locf(data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      相关资源
      最近更新 更多