tidyfinance

Project Status: Active - The project has reached a stable, usable state and is being actively developed. R-CMD-check

This repository contains an R package that collects helper functions for developers and researchers familiar with Tidy Finance with R. The functions provide shortcuts to selected issues that the book discusses in detail.

Installation

You can install the released version of tidyfinance from CRAN via:

install.packages("tidyfinance")

You can install the development version of tidyfinance from GitHub via:

# install.packages("pak")
pak::pak("tidy-finance/r-tidyfinance")

Usage

Download Data

The main functionality of the tidyfinance package centers around data download. You can download most of the data that we used in Tidy Finance with R using the download_data() function or its children. For instance, both functions give the same result:

download_data(
  type = "factors_ff_3_monthly", 
  start_date = "2000-01-01", 
  end_date = "2020-12-31"
)

download_data_factors_ff(
  type = "factors_ff_3_monthly", 
  start_date = "2000-01-01", 
  end_date = "2020-12-31"
)

You can also download data directly from WRDS (if you have set your credentials via Sys.setenv(WRDS_USER = "your_username", WRDS_PASSWORD = "your_password")), e.g.,

download_data(
  type = "wrds_compustat_annual", 
  start_date = "2000-01-01", 
  end_date = "2020-12-31"
)

If you want to fetch additional columns that are not included in our default selection, then pass them as additional arguments in the corresponding child function:

download_data_wrds_compustat(
  type = "wrds_compustat_annual",  
  start_date = "2000-01-01", 
  end_date = "2020-12-31",
  additional_columns = c("acoxar", "amc", "aldo")
)

You can get a list of all currently supported types via list_supported_types(). Please open an issue on GitHub to request additional supported types.

Other Helpers

We include functions to check out content from tidy-finance.org:

list_tidy_finance_chapters()
open_tidy_finance_website()

There are also some simple helpers for regression analyses:

winsorize()
trim()
create_summary_statistics()

We also include (experimental) functions that can be used for different applications, but note that they might heavily change in future package versions as we try to make them more general:

# For portfolio sorts
?assign_portfolio()

# For model estimation
?estimate_model()

# For beta estimation
?estimate_betas()

# For beta estimation
?estimate_fama_macbeth()