[R-SIG-Finance] getting a subset corresponding to a list element
Enrico Schumann
es at enricoschumann.net
Mon May 29 09:49:31 CEST 2017
Zitat von Michael Ashton <m.ashton at enduringinvestments.com>:
> I'm not sure how to ask this with the proper terminology, but here goes:
>
> The BDH() function in RBLPAPI returns, for a list of symbols (e.g.,
> 'SPX Index','RIY Index','IBM Equity') a list of closing prices. The
> problem is that the result is not a matrix or a dataframe, but a list.
>
> So, if I run the query with 3 symbols, I get a list with 3 elements.
> For example, in this case, if
>
> symbolist <-c("SPX Index","MXWO Index","MXEA Index")
> resultlist <- bdh(symbollist, "PX_LAST",
> options=opt,start.date=as.Date(begdate))
>
> then resultlist is a list with 3 elements, and as many rows as there
> are dates between "begdate" and today (or as many month-ends, if
> "opt" declares monthly periodicity). Suppose in this case I've set
> this up to retrieve 60 dates.
>
> But I don't WANT a list. I want a zoo object containing each of
> these as an element. I thought about starting by trying to put each
> element in a matrix by
>
> data<-matrix(nrow=60,ncol=length(symbollist))
>
> and then looping through from 1 to length(symbolist), letting
>
> data[,i] <- resultlist$symbollist[i][,2]
>
> but this clearly doesn't work since what I really want is
>
> data[,1] <-resultlist$'SPX Index'[,2]
> data[,2] <-resultlist$'MXWO Index'[,2]
> etc
>
> But there's probably a much easier way to do this.
>
> I am sending this to both the general help list and the
> r-sig-finance list since there is probably both a general way to
> stuff a list into a zoo object and a way to do it cleanly with the
> BDH() command. Thanks in advance for help.
>
> Mike
>
Try this:
require("Rblpapi")
require("zoo")
blpConnect()
res <- bdh(c("SPX Index","MXWO Index","MXEA Index"),
fields = "PX_LAST",
start.date = as.Date("2017-01-01"),
end.date = as.Date("2017-01-05"))
do.call("merge",
lapply(res, function(x) zoo(x[[2]], x[[1]])))
--
Enrico Schumann
Lucerne, Switzerland
http://enricoschumann.net
More information about the R-SIG-Finance
mailing list