Rblpapi,未列出data.xts

Rblpapi,未列出data.xts,r,dataframe,xts,zoo,R,Dataframe,Xts,Zoo,使用Rblpapi,我在一个data.frame中获得了包含多个列表的3个索引的stockdata。 然后,我想让它在动物园或更好的xts格式。然而,我首先必须正确地取消列表 由于不是每个人都可以访问Rblpapi,因此无法复制,请查看str输出并建议我如何取消列表 任何线索或帮助感谢 library(Rblpapi) library(zoo) library(xts) str(res) List of 3 $ :'data.frame': 9 obs. of 2 variabl

使用Rblpapi,我在一个data.frame中获得了包含多个列表的3个索引的stockdata。 然后,我想让它在动物园或更好的xts格式。然而,我首先必须正确地取消列表

由于不是每个人都可以访问Rblpapi,因此无法复制,请查看str输出并建议我如何取消列表

任何线索或帮助感谢

library(Rblpapi)
library(zoo)
library(xts)

str(res)



List of 3
 $ :'data.frame':   9 obs. of  2 variables:
  ..$ date   : Date[1:9], format:  ...
  ..$ PX_LAST: num [1:9] 201 194 188 190 190 ...
 $ :'data.frame':   9 obs. of  2 variables:
  ..$ date   : Date[1:9], format:  ...
  ..$ PX_LAST: num [1:9] 4891 4686 4477 4568 4517 ...
 $ :'data.frame':   9 obs. of  2 variables:
  ..$ date   : Date[1:9], format:  ...
  ..$ PX_LAST: num [1:9] 19.3 22.5 26.1 22.5 22 ...

head(res)
[[1]]
        date  PX_LAST
1 2016-01-05 201.3600
2 2016-01-12 193.6608
3 2016-01-19 188.0600
4 2016-01-26 190.2000
5 2016-02-02 190.1600
6 2016-02-09 185.4300
7 2016-02-16 189.7800
8 2016-02-23 192.3200
9 2016-03-01 197.9700

[[2]]
        date  PX_LAST
1 2016-01-05 4891.430
2 2016-01-12 4685.919
3 2016-01-19 4476.950
4 2016-01-26 4567.673
5 2016-02-02 4516.946
6 2016-02-09 4268.763
7 2016-02-16 4435.956
8 2016-02-23 4503.583
9 2016-03-01 4680.479

[[3]]
        date PX_LAST
1 2016-01-05   19.34
2 2016-01-12   22.47
3 2016-01-19   26.05
4 2016-01-26   22.50
5 2016-02-02   21.98
6 2016-02-09   26.54
7 2016-02-16   24.11
8 2016-02-23   20.98
9 2016-03-01   17.85
取消列表以获取一个data.frame/zoo/xts对象(日期、pricedata1、pricedata2、pricedata3)


df我相信你所需要的就是在日期前加入每个列表元素

然而,为此,首先需要将所有这些变量
PX\u LAST
重命名为唯一的名称。例如:

require(data.table)
for (i in 1:length(res)) {
  setnames(res[[i]],"PX_LAST",paste("PX_LAST",i,sep="_"))
}
然后,您可以通过成对的
merge
ing或使用
plyr::join\u all
功能加入:

require(plyr)
df <- join_all(res, by="date", type="full")

#         date PX_LAST_1 PX_LAST_2 PX_LAST_3
# 1 2016-01-05  201.3600  4891.430     19.34
# 2 2016-01-12  193.6608  4685.919     22.47
# 3 2016-01-19  188.0600  4476.950     26.05
# 4 2016-01-26  190.2000  4567.673     22.50
# 5 2016-02-02  190.1600  4516.946     21.98
# 6 2016-02-09  185.4300  4268.763     26.54
# 7 2016-02-16  189.7800  4435.956     24.11
# 8 2016-02-23  192.3200  4503.583     20.98
# 9 2016-03-01  197.9700  4680.479     17.85
require(plyr)
df
require(data.table)
for (i in 1:length(res)) {
  setnames(res[[i]],"PX_LAST",paste("PX_LAST",i,sep="_"))
}
require(plyr)
df <- join_all(res, by="date", type="full")

#         date PX_LAST_1 PX_LAST_2 PX_LAST_3
# 1 2016-01-05  201.3600  4891.430     19.34
# 2 2016-01-12  193.6608  4685.919     22.47
# 3 2016-01-19  188.0600  4476.950     26.05
# 4 2016-01-26  190.2000  4567.673     22.50
# 5 2016-02-02  190.1600  4516.946     21.98
# 6 2016-02-09  185.4300  4268.763     26.54
# 7 2016-02-16  189.7800  4435.956     24.11
# 8 2016-02-23  192.3200  4503.583     20.98
# 9 2016-03-01  197.9700  4680.479     17.85
include(zoo)
price<-read.zoo(df)

include(xts)
xts(df, df$date)