我的工作区中有很多大xts
个对象,我尝试使用cbind
,merge
,apply
或甚至循环来组合。目前,xts
数据是刻度数据,由于其长度,无法将其粘贴到此处。但是,我要做的是:
cbind(AAPL.O, AMZN.O, BIDU.O, GLD.A, ...) -> all
通过在cbind
stock1 <- c("AAPL.O", "AMZN.O", "BIDU.O", "GLD.A", ...) # names of xts objects
# However this only combines the names "AAPL.O" & "AMZN.O"
cbind(paste(stock1[1]), paste(stock1[2]))
我也试过apply
:
apply(t(stock1), 2, cbind)
但它只合并stock1
中的名称。我也尝试过使用:
merge(SPY.A, source [stock1])
但是出现以下错误:
Error in source[stock1] : object of type 'closure' is not subsettable
由于我无法在此处输入所有的刻度数据,因此我将提供一些代码,使用getSymbols()
library(quantmod)
symbols <- c("AAPL", "AMZN", "BIDU", "GLD")
getSymbols(symbols)
#These will yield the same problem I am having
cbind(paste(symbols[1]),paste(symbols[2] ))
apply(t(symbols), 2, cbind)
merge(AAPL, source [symbols])
答案 0 :(得分:1)
也许mget
和do.call
的组合对您有用,但如果没有一些示例输入和预期输出,很难说。
一个例子:
## Some matrices to combine using `cbind`
M1 <- matrix(1:4, ncol = 2)
M2 <- matrix(5:8, ncol = 2)
M3 <- matrix(9:10, ncol = 1)
## Like your "stock1"
Get <- c("M1", "M2", "M3")
do.call(cbind, mget(Get))
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 3 5 7 9
# [2,] 2 4 6 8 10