I struggled a bit with how to do this concisely. My solution, using matrix(...) works but seems a bit sledge hammer like. Is there a better one?
I have an existing 1-row xts object (D1) and a non-xts vector (E1) that comes from an external source which I want to merge together:
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
My question here is whether the matrix(G1, nrow=1) construct is the intended way to do this sort of thing, the issue being that xts requires X and index(X) to have the same dimensions.
Thanks!
xts(t(G1), index(D1))
– GSee