#' Data-filtering conditions as vectors
#'
#' Creates a factor grid dataframe of data-filtering conditions for passing to additional to additional factorial-design functions.
#'
#' @importFrom magrittr %>%
#' @include sweet_dots-function.R
#' @include expand_fgrid_helpers.R
#' @param .data a \code{factor.grid} dataframe generated by or
#' @param ... additional arguments
#' @return a data.frame of factorial-based filtering condition or a list for passing to additional
#' @family factorial-design functions
#' @export
#'
expand_fgrid <- function(.data, ...) {
UseMethod("expand_fgrid", .data)
}
#' @rdname expand_fgrid
#' @export
expand_fgrid.default <-
Vectorize(
FUN = function(.data, ...)
expand_fgrid(.data, ...),
vectorize.args = c(".data"),
SIMPLIFY = FALSE,
USE.NAMES = FALSE
)
#' @rdname expand_fgrid
#' @export
expand_fgrid.factor.grid <-
function(.data,
...) {
assertthat::validate_that(
"factor.grid" %in% attr(.data, which = "class")
)
options("stringsAsFactors" = FALSE)
ff_dots <-
pryr::named_dots(...)
lapply(ff_dots, eval, parent.frame())
iv <-
c(paste(colnames(.data)))
data <-
lapply(iv,grow_fgrid,.data=.data) %>%
as.data.frame()
data$num_lvls <- 0L
data$label = NA_character_
data$filter_form = NA_character_
data["num_lvls"] <-
number_of_levels(data)
data["label"] <-
label_levels(data)
data["filter_form"] <-
filter_from_levels(data)
data<-
drop_fgrid_levels(data)
data
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.