【发布时间】:2014-01-13 22:37:08
【问题描述】:
我在如何简洁地做到这一点上有点挣扎。我的解决方案,使用 matrix(...) 有效,但似乎有点像大锤。有没有更好的?
我有一个现有的 1 行 xts 对象 (D1) 和一个来自外部源的非 xts 向量 (E1),我想将它们合并在一起:
library(quantmod)
getSymbols("SPY")
data = get("SPY")
is.xts(data)
# Extract a single row xts object
D1 = data[1,]
index(D1)
# Get the numerical part as a vector
D1v = as.vector(D1)
# New data from external source to be merged
E1 = c(5,6,7,8,9,10)
# Combine into new vector
G1 = c(D1v, E1)
G1
# This fails, I think because xts treats G1
# like a 1-column object, not a 1-row object?
testXts1 = xts(G1, order.by = index(D1))
testXts2 = xts(matrix(G1, nrow=1), order.by = index(D1))
index(testXts2)
testXts2
我的问题是 matrix(G1, nrow=1) 构造是否是执行此类操作的预期方式,问题是 xts 要求 X 和 index(X) 具有相同的维度。
谢谢!
【问题讨论】:
-
你可以省点打字:
xts(t(G1), index(D1))