## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## -----------------------------------------------------------------------------
# install.packages("tidyfinance")

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

## -----------------------------------------------------------------------------
library(tidyfinance)

## -----------------------------------------------------------------------------
list_supported_types()

## -----------------------------------------------------------------------------
# download_data("factors_ff_3_monthly", "2020-01-01", "2020-12-31")

## -----------------------------------------------------------------------------
# download_data("factors_q5_daily", "2020-01-01", "2020-12-31")

## -----------------------------------------------------------------------------
# download_data("wrds_crsp_monthly", "2020-01-01", "2020-12-31")

## -----------------------------------------------------------------------------
# download_data_wrds_crsp("wrds_crsp_monthly", "2020-01-01", "2020-12-31", additional_columns = "mthvol")

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

## -----------------------------------------------------------------------------
list_tidy_finance_chapters()

## -----------------------------------------------------------------------------
# open_tidy_finance_website("beta-estimation")

## -----------------------------------------------------------------------------
library(dplyr)

set.seed(123)
data <- tibble(x = rnorm(100)) |>
  arrange(x)

data |>
  mutate(x_winsorized = winsorize(x, 0.01))

## -----------------------------------------------------------------------------
data |>
  mutate(x_trimmed = trim(x, 0.01))

## -----------------------------------------------------------------------------
create_summary_statistics(data, x, detail = TRUE)

## -----------------------------------------------------------------------------
data <- tibble(
  id = 1:100,
  exchange = sample(c("NYSE", "NASDAQ"), 100, replace = TRUE),
  market_cap = runif(100, 1e6, 1e9)
)

data |>
  mutate(
    portfolio = assign_portfolio(
      pick(everything()), "market_cap", list(n_portfolios = 5, breakpoint_exchanges = "NYSE"))
  )

## -----------------------------------------------------------------------------
data <- tibble(
  ret_excess = rnorm(100),
  mkt_excess = rnorm(100),
  smb = rnorm(100),
  hml = rnorm(100)
)

estimate_model(data, "ret_excess ~ mkt_excess + smb + hml")