assign_portfolio: Assign Portfolios Based on Sorting Variable

View source: R/assign_portfolio.R

assign_portfolioR Documentation

Assign Portfolios Based on Sorting Variable

Description

Assigns data points to portfolios based on a specified sorting variable and the selected function to compute breakpoints. Users can specify a function to compute breakpoints. The function must take data and sorting_variable as the first two arguments. Additional arguments are passed with a named list breakpoint_options(). The function needs to return an ascending vector of breakpoints. By default, breakpoints are computed with compute_breakpoints(). The default column names can be modified using data_options().

Usage

assign_portfolio(
  data,
  sorting_variable,
  breakpoint_options = NULL,
  breakpoint_function = compute_breakpoints,
  data_options = NULL
)

Arguments

data

A data frame containing the dataset for portfolio assignment.

sorting_variable

A string specifying the column name in data to be used for sorting and determining portfolio assignments based on the breakpoints.

breakpoint_options

An optional named list of arguments passed to breakpoint_function.

breakpoint_function

A function to compute breakpoints. The default is set to compute_breakpoints().

data_options

A list of class tidyfinance_data_options (created via data_options()) specifying column name mappings. Passed through to breakpoint_function. When using the default compute_breakpoints(), the exchange element is used to specify the exchange column, and mktcap_lag is used to specify the market capitalization column. Uses data_options() default if NULL: "exchange" = "exchange" and "mktcap_lag" = "mktcap_lag".

Value

A vector of integer portfolio assignments for each row in the input data.

See Also

Other portfolio functions: breakpoint_options(), compute_breakpoints(), compute_long_short_returns(), compute_portfolio_returns(), data_options(), filter_options(), filter_sorting_data(), implement_portfolio_sort(), portfolio_sort_options()

Examples

set.seed(42)
data <- data.frame(
  id = 1:100,
  exchange = sample(c("NYSE", "NASDAQ"), 100, replace = TRUE),
  market_cap = 1:100
)

assign_portfolio(data, "market_cap", breakpoint_options(n_portfolios = 5))

assign_portfolio(
  data,
  "market_cap",
  breakpoint_options(
    percentiles = c(0.2, 0.4, 0.6, 0.8),
    breakpoints_exchanges = c("NYSE")
  )
)


tidyfinance documentation built on June 26, 2026, 1:07 a.m.