x是一个充满数据的xts对象;让我们假设OHLC数据为例。 我想创建另一个xts对象,具有相同的大小和日期戳,但不同的列(例如一些指示符)。
我目前的做法很粗糙:
a = x$close
for(nn in 1:10){
z = analysis(x,nn) #Returns an enhanced version of x
z2 = z$result #Get out just the data I want, so I can rename the column
colnames(z2) = paste("result",nn,sep="_")
a = cbind(a,z2) #Merge in each result
}
a$close = NULL #Tidyup
即。我只从x,任何旧列中引入一列,只是为了得到结构,然后在最后扔掉它。 (它有效,所以我很高兴,但感觉必须有更好的方法。)
我试过这样的想法:
a = xts(index(x))
a = xts(orderby=index(x))
a = as.xts(index(x))
a = as.xts(orderby=index(x))
但是他们给了我空的XTS对象。例如。当我尝试这个时,我得到一个错误:
a$dummy = 1
答案 0 :(得分:5)
请注意,参数为order.by
,而不是orderby
。但这并不能解决您的问题。你在寻找的是:
a <- xts(order.by=index(x))
a <- merge(a, dummy=1)
a$dummy <- 1
不起作用,因为zoo对象可以是向量或矩阵,而xts对象总是一个矩阵,并且没有$<-.xts
方法。
答案 1 :(得分:1)
试试这个:
library(xts)
L <- list()
L$x <- xts(1:4, as.Date(1:4))
L$y <- xts(1:4, as.Date(1:4))
do.call("merge", L)