cbind或通过粘贴名称合并?

时间:2014-07-03 07:19:20

标签: r merge xts cbind

我的工作区中有很多大xts个对象,我尝试使用cbindmergeapply或甚至循环来组合。目前,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])

1 个答案:

答案 0 :(得分:1)

也许mgetdo.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