gpt4 book ai didi

r - 向 xts 对象添加多列

转载 作者:行者123 更新时间:2023-12-02 01:54:11 25 4
gpt4 key购买 nike

我对如何简明地做到这一点感到困惑。我的解决方案使用 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 是不寻常的),我认为你发现的成语可能和其他任何东西一样好。

我能想到的另一种方法是一次添加每一列:

D1$a = 5
D1$b = 6
D1$c = 7
D1$d = 8
D1$e = 9

这给出:

> D1
SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted a b c d e
2007-01-03 142.25 142.86 140.57 141.37 94807600 122.03 5 6 7 8 9

关于r - 向 xts 对象添加多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com