diff --git a/NAMESPACE b/NAMESPACE index ad091a9..aa8e911 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,6 +1,11 @@ # Generated by roxygen2: do not edit by hand S3method(augment,orbital_class) +S3method(estimate_adj_chars,default) +S3method(estimate_adj_chars,equivocal_zone) +S3method(estimate_adj_chars,numeric_range) +S3method(estimate_adj_chars,predictions_custom) +S3method(estimate_adj_chars,probability_threshold) S3method(estimate_orbital_size,catboost.Model) S3method(estimate_orbital_size,constparty) S3method(estimate_orbital_size,default) @@ -16,6 +21,35 @@ S3method(estimate_orbital_size,rpart) S3method(estimate_orbital_size,tailor) S3method(estimate_orbital_size,workflow) S3method(estimate_orbital_size,xgb.Booster) +S3method(estimate_step_chars,default) +S3method(estimate_step_chars,step_adasyn) +S3method(estimate_step_chars,step_bsmote) +S3method(estimate_step_chars,step_center) +S3method(estimate_step_chars,step_corr) +S3method(estimate_step_chars,step_downsample) +S3method(estimate_step_chars,step_dummy) +S3method(estimate_step_chars,step_filter_missing) +S3method(estimate_step_chars,step_impute_mean) +S3method(estimate_step_chars,step_impute_median) +S3method(estimate_step_chars,step_indicate_na) +S3method(estimate_step_chars,step_lincomb) +S3method(estimate_step_chars,step_log) +S3method(estimate_step_chars,step_mutate) +S3method(estimate_step_chars,step_nearmiss) +S3method(estimate_step_chars,step_normalize) +S3method(estimate_step_chars,step_nzv) +S3method(estimate_step_chars,step_pca) +S3method(estimate_step_chars,step_range) +S3method(estimate_step_chars,step_rm) +S3method(estimate_step_chars,step_rose) +S3method(estimate_step_chars,step_scale) +S3method(estimate_step_chars,step_select) +S3method(estimate_step_chars,step_smote) +S3method(estimate_step_chars,step_smotenc) +S3method(estimate_step_chars,step_sqrt) +S3method(estimate_step_chars,step_tomek) +S3method(estimate_step_chars,step_upsample) +S3method(estimate_step_chars,step_zv) S3method(orbital,catboost.Model) S3method(orbital,constparty) S3method(orbital,default) diff --git a/NEWS.md b/NEWS.md index af80308..e56acf9 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,11 @@ # orbital (development version) + +## Improvements + * `estimate_orbital_size()` is a new function that quickly estimates the character count of the orbital expression for a model without generating it. (#144) +## Bug fixes + * `step_dummy()` and `step_indicate_na()` now generate SQL compatible with Snowflake and other databases that don't support casting booleans directly to numeric types. (#145) # orbital 0.5.0 diff --git a/R/adjust_equivocal_zone.R b/R/adjust_equivocal_zone.R index a038010..d6b8a2a 100644 --- a/R/adjust_equivocal_zone.R +++ b/R/adjust_equivocal_zone.R @@ -33,6 +33,7 @@ orbital.equivocal_zone <- function(x, tailor, type, prefix, ...) { } # dplyr::case_when with 3 branches and arithmetic ~= 120 chars +#' @exportS3Method estimate_adj_chars.equivocal_zone <- function(x, ...) { 120L } diff --git a/R/adjust_numeric_range.R b/R/adjust_numeric_range.R index 7eaf22b..9e94027 100644 --- a/R/adjust_numeric_range.R +++ b/R/adjust_numeric_range.R @@ -28,6 +28,7 @@ orbital.numeric_range <- function(x, tailor, ...) { } # dplyr::case_when with 2-3 branches ~= 80 chars +#' @exportS3Method estimate_adj_chars.numeric_range <- function(x, ...) { lower <- x$arguments$lower_limit upper <- x$arguments$upper_limit diff --git a/R/adjust_predictions_custom.R b/R/adjust_predictions_custom.R index b4b8574..b538925 100644 --- a/R/adjust_predictions_custom.R +++ b/R/adjust_predictions_custom.R @@ -11,6 +11,7 @@ orbital.predictions_custom <- function(x, ...) { } # Estimate based on number of expressions, ~50 chars each +#' @exportS3Method estimate_adj_chars.predictions_custom <- function(x, ...) { n_exprs <- length(x$arguments$commands) if (n_exprs == 0) { diff --git a/R/adjust_probability_threshold.R b/R/adjust_probability_threshold.R index 665c612..9fca217 100644 --- a/R/adjust_probability_threshold.R +++ b/R/adjust_probability_threshold.R @@ -32,6 +32,7 @@ orbital.probability_threshold <- function(x, tailor, type, prefix, ...) { } # dplyr::case_when with 3 branches ~= 100 chars +#' @exportS3Method estimate_adj_chars.probability_threshold <- function(x, ...) { 100L } diff --git a/R/estimate-size.R b/R/estimate-size.R index c9126f8..f5f3015 100644 --- a/R/estimate-size.R +++ b/R/estimate-size.R @@ -420,6 +420,7 @@ estimate_step_chars <- function(x, ...) { # Default: estimate based on number of columns affected # Most steps produce ~40 chars per column as a rough baseline +#' @exportS3Method estimate_step_chars.default <- function(x, ...) { n_cols <- length(x$columns %||% 0L) as.integer(n_cols * 40) @@ -433,6 +434,7 @@ estimate_adj_chars <- function(x, ...) { } # Default: most adjustments produce ~80 chars for a case_when expression +#' @exportS3Method estimate_adj_chars.default <- function(x, ...) { 80L } diff --git a/R/step_adasyn.R b/R/step_adasyn.R index 74bca7e..d2d6f9f 100644 --- a/R/step_adasyn.R +++ b/R/step_adasyn.R @@ -6,6 +6,7 @@ orbital.step_adasyn <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_adasyn <- function(x, ...) { 0L } diff --git a/R/step_bsmote.R b/R/step_bsmote.R index 29264d6..3171e2b 100644 --- a/R/step_bsmote.R +++ b/R/step_bsmote.R @@ -6,6 +6,7 @@ orbital.step_bsmote <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_bsmote <- function(x, ...) { 0L } diff --git a/R/step_center.R b/R/step_center.R index b0cc06a..787ebb1 100644 --- a/R/step_center.R +++ b/R/step_center.R @@ -14,6 +14,7 @@ orbital.step_center <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_center <- function(x, ...) { n_cols <- length(x$means) if (n_cols == 0) { diff --git a/R/step_corr.R b/R/step_corr.R index bcae455..c8ccf9a 100644 --- a/R/step_corr.R +++ b/R/step_corr.R @@ -3,6 +3,7 @@ orbital.step_corr <- function(x, all_vars, ...) { NULL } +#' @exportS3Method estimate_step_chars.step_corr <- function(x, ...) { 0L } diff --git a/R/step_downsample.R b/R/step_downsample.R index b2a5340..681693a 100644 --- a/R/step_downsample.R +++ b/R/step_downsample.R @@ -6,6 +6,7 @@ orbital.step_downsample <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_downsample <- function(x, ...) { 0L } diff --git a/R/step_dummy.R b/R/step_dummy.R index 7fd1caf..e7f188f 100644 --- a/R/step_dummy.R +++ b/R/step_dummy.R @@ -18,6 +18,7 @@ orbital.step_dummy <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_dummy <- function(x, ...) { total <- 0L for (var in names(x$levels)) { diff --git a/R/step_filter_missing.R b/R/step_filter_missing.R index 054ae35..45a02d2 100644 --- a/R/step_filter_missing.R +++ b/R/step_filter_missing.R @@ -3,6 +3,7 @@ orbital.step_filter_missing <- function(x, all_vars, ...) { NULL } +#' @exportS3Method estimate_step_chars.step_filter_missing <- function(x, ...) { 0L } diff --git a/R/step_impute_mean.R b/R/step_impute_mean.R index 4f08451..3f0aa5c 100644 --- a/R/step_impute_mean.R +++ b/R/step_impute_mean.R @@ -16,6 +16,7 @@ orbital.step_impute_mean <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_impute_mean <- function(x, ...) { n_cols <- length(x$means) if (n_cols == 0) { diff --git a/R/step_impute_median.R b/R/step_impute_median.R index 018d9b1..e39811f 100644 --- a/R/step_impute_median.R +++ b/R/step_impute_median.R @@ -16,6 +16,7 @@ orbital.step_impute_median <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_impute_median <- function(x, ...) { n_cols <- length(x$medians) if (n_cols == 0) { diff --git a/R/step_indicate_na.R b/R/step_indicate_na.R index 5195c6c..8429431 100644 --- a/R/step_indicate_na.R +++ b/R/step_indicate_na.R @@ -17,6 +17,7 @@ orbital.step_indicate_na <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_indicate_na <- function(x, ...) { n_cols <- length(x$columns) if (n_cols == 0) { diff --git a/R/step_lincomb.R b/R/step_lincomb.R index 160944e..7e2472b 100644 --- a/R/step_lincomb.R +++ b/R/step_lincomb.R @@ -3,6 +3,7 @@ orbital.step_lincomb <- function(x, all_vars, ...) { NULL } +#' @exportS3Method estimate_step_chars.step_lincomb <- function(x, ...) { 0L } diff --git a/R/step_log.R b/R/step_log.R index c99ea97..ab75166 100644 --- a/R/step_log.R +++ b/R/step_log.R @@ -23,6 +23,7 @@ orbital.step_log <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_log <- function(x, ...) { n_cols <- length(x$columns) if (n_cols == 0) { diff --git a/R/step_mutate.R b/R/step_mutate.R index e27a97d..c231e4b 100644 --- a/R/step_mutate.R +++ b/R/step_mutate.R @@ -9,6 +9,7 @@ orbital.step_mutate <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_mutate <- function(x, ...) { n_exprs <- length(x$inputs) as.integer(n_exprs * 50) diff --git a/R/step_nearmiss.R b/R/step_nearmiss.R index aee538a..44ac994 100644 --- a/R/step_nearmiss.R +++ b/R/step_nearmiss.R @@ -6,6 +6,7 @@ orbital.step_nearmiss <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_nearmiss <- function(x, ...) { 0L } diff --git a/R/step_normalize.R b/R/step_normalize.R index cd20aab..6458ea3 100644 --- a/R/step_normalize.R +++ b/R/step_normalize.R @@ -19,6 +19,7 @@ orbital.step_normalize <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_normalize <- function(x, ...) { n_cols <- length(x$means) if (n_cols == 0) { diff --git a/R/step_nzv.R b/R/step_nzv.R index a8e8bb8..5a08d72 100644 --- a/R/step_nzv.R +++ b/R/step_nzv.R @@ -3,6 +3,7 @@ orbital.step_nzv <- function(x, all_vars, ...) { NULL } +#' @exportS3Method estimate_step_chars.step_nzv <- function(x, ...) { 0L } diff --git a/R/step_pca.R b/R/step_pca.R index d773455..9f928f3 100644 --- a/R/step_pca.R +++ b/R/step_pca.R @@ -5,6 +5,7 @@ orbital.step_pca <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_pca <- function(x, ...) { rot <- x$res$rotation n_components <- ncol(rot) diff --git a/R/step_range.R b/R/step_range.R index d3fcf70..1f04e55 100644 --- a/R/step_range.R +++ b/R/step_range.R @@ -31,6 +31,7 @@ orbital.step_range <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_range <- function(x, ...) { n_cols <- ncol(x$ranges) if (n_cols == 0) { diff --git a/R/step_rm.R b/R/step_rm.R index d71a7bd..a3f7c2c 100644 --- a/R/step_rm.R +++ b/R/step_rm.R @@ -3,6 +3,7 @@ orbital.step_rm <- function(x, all_vars, ...) { NULL } +#' @exportS3Method estimate_step_chars.step_rm <- function(x, ...) { 0L } diff --git a/R/step_rose.R b/R/step_rose.R index aba4ac4..38e4f1b 100644 --- a/R/step_rose.R +++ b/R/step_rose.R @@ -6,6 +6,7 @@ orbital.step_rose <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_rose <- function(x, ...) { 0L } diff --git a/R/step_scale.R b/R/step_scale.R index 3393285..ff3f008 100644 --- a/R/step_scale.R +++ b/R/step_scale.R @@ -14,6 +14,7 @@ orbital.step_scale <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_scale <- function(x, ...) { n_cols <- length(x$sds) if (n_cols == 0) { diff --git a/R/step_select.R b/R/step_select.R index 3d16946..b61e0ff 100644 --- a/R/step_select.R +++ b/R/step_select.R @@ -3,6 +3,7 @@ orbital.step_select <- function(x, all_vars, ...) { NULL } +#' @exportS3Method estimate_step_chars.step_select <- function(x, ...) { 0L } diff --git a/R/step_smote.R b/R/step_smote.R index e72d273..d123f32 100644 --- a/R/step_smote.R +++ b/R/step_smote.R @@ -6,6 +6,7 @@ orbital.step_smote <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_smote <- function(x, ...) { 0L } diff --git a/R/step_smotenc.R b/R/step_smotenc.R index 4e5e363..ad6dd9b 100644 --- a/R/step_smotenc.R +++ b/R/step_smotenc.R @@ -6,6 +6,7 @@ orbital.step_smotenc <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_smotenc <- function(x, ...) { 0L } diff --git a/R/step_sqrt.R b/R/step_sqrt.R index 1677f87..9f9046c 100644 --- a/R/step_sqrt.R +++ b/R/step_sqrt.R @@ -14,6 +14,7 @@ orbital.step_sqrt <- function(x, all_vars, ...) { out } +#' @exportS3Method estimate_step_chars.step_sqrt <- function(x, ...) { n_cols <- length(x$columns) if (n_cols == 0) { diff --git a/R/step_tomek.R b/R/step_tomek.R index 786e67f..9e84596 100644 --- a/R/step_tomek.R +++ b/R/step_tomek.R @@ -6,6 +6,7 @@ orbital.step_tomek <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_tomek <- function(x, ...) { 0L } diff --git a/R/step_upsample.R b/R/step_upsample.R index 240a853..2e43c9e 100644 --- a/R/step_upsample.R +++ b/R/step_upsample.R @@ -6,6 +6,7 @@ orbital.step_upsample <- function(x, all_vars, ...) { ) } +#' @exportS3Method estimate_step_chars.step_upsample <- function(x, ...) { 0L } diff --git a/R/step_zv.R b/R/step_zv.R index c615e12..2858d4b 100644 --- a/R/step_zv.R +++ b/R/step_zv.R @@ -3,6 +3,7 @@ orbital.step_zv <- function(x, all_vars, ...) { NULL } +#' @exportS3Method estimate_step_chars.step_zv <- function(x, ...) { 0L }