x是一个充满数据的xts对象;为了举例,我们假设OHLC数据。 我想创建另一个xts对象,具有相同的大小和日期戳,但列不同(例如某些指标)。创建一个带有日期戳但最初没有列的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
感谢Joshua。在我的例子中使用a = xts(order.by = index(x))而不是a = x $ close确实有效(即,cbind和合并一样)。然而,$ dummy = 1语法对XTS对象有效;它似乎不适合创建第一列。 (例如,从上面的两行代码示例中,$ dummy2 = 1将起作用!) –
@Darren:抱歉,我不清楚。 '$ dummy < - 1'不适用于在空的xts对象中创建第一列,因为没有'$ < - 。xts'方法意味着调用$ < - 。zoo',并且空的zoo对象被视为像导致'$ < - 。zoo'失败的向量。我试图提供一些关于错误的背景,但可能没有必要。 –
啊哈!谢谢,现在我明白了。 –