根据R中特定日期的某些事件替换xts对象中的值

时间:2013-12-13 12:28:33

标签: r merge xts

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

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"))

我想要的是data获取购买信号的日期BuyDatesdata的值应替换为1SellDates它应该是-1。并且,在序列的剩余天数中,1或-1应该被继续直到它得到相反的信号,并且直到第1个信号的日期,值应该被替换为{ {1}}。

请帮助

1 个答案:

答案 0 :(得分: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)