Function to obtain data from Eikon. Based on the Eikon python function get_data
rd_GetData.Rd
The function automatically chunks the list of rics into chunks that comply with the api limitations and in the end rebuilds the chunks again into a single data.frame.
Usage
rd_GetData(
RDObject = RefinitivJsonConnect(),
rics,
Eikonformulas,
Parameters = NULL,
raw_output = FALSE,
time_out = 60,
verbose = FALSE,
SpaceConvertor = NULL,
use_field_names_in_headers = FALSE,
SyncFields = FALSE
)
Arguments
- RDObject
Refinitiv Data connection object
- rics
a vector containing the instrument RICS
- Eikonformulas
a vector containing character string of Eikon Formulas
- Parameters
a named key value list for setting parameters, Default: NULL
- raw_output
to return the raw list by chunk for debugging purposes, default = FALSE
- time_out
set the maximum timeout to the Eikon server, default = 60
- verbose
boolean, set to true to print out the actual python call with time stamp for debugging.
- SpaceConvertor
converts spaces in variables name into one of the following characters ".", "," , "-", "_", default is NULL
- use_field_names_in_headers
boolean return request fieldnames in stead of titles
- SyncFields
boolean, synchronize fields over same time axis (only JSON!, because not supported in Python (use GetHistory))
Details
Currently there is a known bug in the reticulate package with large integers. If a request is made that returns large integers the reticulate package will return -1 for these integers. See also this issue https://github.com/rstudio/reticulate/issues/323 or try for yourself as indicated here https://community.rstudio.com/t/large-integer-conversion-from-python-to-r/82568
Examples
if (FALSE) { # \dontrun{
Refinitiv <- RDConnect(PythonModule = "RD")
ex1 <- rd_GetData(RDObject = Refinitiv, rics = c("MMM", "III.L"),
Eikonformulas = c("TR.PE(Sdate=0D)/*P/E (LTM) - Diluted Excl*/"
, "TR.CompanyName"), verbose = TRUE)
ex2 <- rd_GetData( RDObject = Refinitiv, rics = "AAPL.O"
, Eikonformulas = "TR.CompanyMarketCap(Sdate=0D)/*Market Cap*/"
)
} # }
if (FALSE) { # \dontrun{
Refinitiv <- RDConnect(PythonModule = "JSON")
ex1 <- rd_GetData(RDObject = Refinitiv, rics = c("MMM", "III.L"),
Eikonformulas = c("TR.PE(Sdate=0D)/*P/E (LTM) - Diluted Excl*/"
, "TR.CompanyName"), verbose = TRUE)
} # }
if (FALSE) { # \dontrun{
rics <- c("AAPL.O")
fields <- c("TR.IssueMarketCap(Scale=6,ShType=FFL)","TR.FreeFloatPct()/100/*FreefloatWeight*/"
,"TR.IssueSharesOutstanding(Scale=3)/*shares outstanding*/"
,"TR.CLOSEPRICE(Adjusted=0)/*close*/")
parameters <- list("Curn" = "USD", "SDate" = "2020-10-27", "EDate" = "2020-12-01", "Fill" ="None")
test_json <- rd_GetData( RD = RDConnect(PythonModule = "JSON")
, rics = rics
, Eikonformulas = fields
, Parameters = parameters
, use_field_names_in_headers = TRUE
, SyncFields = FALSE
)
} # }