Skip to content

bergant/xbrlus

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
R
 
 
man
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

xbrlus

This package provides an R interface to XBRL US API.

Installation

devtools::install_github("bergant/xbrlus")

Setup

All APIs (except for the CIKLookup) require use of a valid XBRL US API key. You can get the key and read the terms of usage at http://xbrl.us/use/howto/data-analysis-toolkit/.

xbrlus package will read the API key from environment variable XBRLUS_API_KEY. To start R session with the initialized environment variable create a file in your R home with a line like this:

XBRLUS_API_KEY=EnterKeyHere

and name it as .Renviron. To check where your R home is, type normalizePath("~") in your R console.

Usage

Get information about companies and XBRL concepts with xbrlCIKLookup and xbrlBaseElement:

library(xbrlus) 

companies <- xbrlCIKLookup(c(
  "aapl", 
  "goog", 
  "fb"
)) 

elements <- xbrlBaseElement(c(
  "AssetsCurrent",
  "AssetsNoncurrent",
  "Assets",
  "LiabilitiesCurrent",
  "LiabilitiesNoncurrent",
  "Liabilities",
  "StockholdersEquity",
  "MinorityInterest",
  "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
  "LiabilitiesAndStockholdersEquity"
))

Use xbrlValues to get balance sheet values:

values <- xbrlValues( 
  CIK = companies$cik, 
  Element = elements$elementName, 
  DimReqd = FALSE, 
  Period = "Y",
  Year = 2013,
  NoYears = 1,
  Ultimus = TRUE,
  Small = TRUE,
  as_data_frame = TRUE
)

Reshape to wide format and print table:

library(dplyr)
library(tidyr)

balance_sheet <- 
  elements %>% 
  left_join(values, by = "elementName") %>% 
  select(entity, standard.text, amount) %>% 
  mutate(amount = round(amount / 10e6,0)) %>%  
  spread(entity, amount)

balance_sheet <- balance_sheet[
    order(order(elements$elementName)),   
    !is.na(names(balance_sheet))]
row.names(balance_sheet) <- NULL

library(pander)
pandoc.table(
  balance_sheet,
  caption = "Balance Sheet Comparison",
  big.mark = ",",
  split.table = 200,
  style = "rmarkdown",
  justify = c("left", rep("right", 3)))
standard.text APPLE INC FACEBOOK INC Google Inc.
Assets, Current 7,329 1,307 7,289
Assets, Noncurrent NA NA 3,803
Assets 20,700 1,790 11,092
Liabilities, Current 4,366 110 1,591
Liabilities, Noncurrent NA NA NA
Liabilities 8,345 242 NA
Stockholders' Equity Attributable to Parent 12,355 1,547 8,731
Stockholders' Equity Attributable to Noncontrolling Interest NA NA NA
Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest NA NA NA
Liabilities and Equity 20,700 1,790 11,092

Table: Balance Sheet Comparison

References

Data Analysis Toolkit and API description on GitHub: https://github.com/xbrlus/data_analysis_toolkit

About

R interface to XBRL US API

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages