Skip to contents

Internal function to validate the argument preference_order.

Usage

validate_preference_order(
  predictors = NULL,
  preference_order = NULL,
  preference_order_auto = NULL,
  function_name = "collinear::validate_preference_order()",
  quiet = FALSE
)

Arguments

predictors

(optional; character vector) Names of the predictors to select from df. If omitted, all numeric columns in df are used instead. If argument response is not provided, non-numeric variables are ignored. Default: NULL

preference_order

(optional; string, character vector, output of preference_order()). Defines a priority order, from first to last, to preserve predictors during the selection process. Accepted inputs are:

  • "auto" (default): if response is not NULL, calls preference_order() for internal computation.

  • character vector: predictor names in a custom preference order.

  • data frame: output of preference_order() from response of length one.

  • named list: output of preference_order() from response of length two or more.

  • NULL: disabled.

. Default: "auto"

preference_order_auto

(required, character vector) names of the predictors in the automated preference order returned by vif_select() or cor_select()

function_name

(optional, character string) Name of the function performing the check. Default: "collinear::validate_preference_order()"

quiet

(optional; logical) If FALSE, messages generated during the execution of the function are printed to the console Default: FALSE

Value

character vector: ranked variable names

Examples

data(
  vi,
  vi_predictors
  )

#validating example data frame
vi <- validate_df(
  df = vi
)

#validating example predictors
vi_predictors <- validate_predictors(
  df = vi,
  predictors = vi_predictors
)

#tagged as validated
attributes(vi_predictors)$validated
#> [1] TRUE

#validate preference order
my_order <- c(
  "swi_max",
  "swi_min",
  "swi_deviance" #wrong one
)

my_order <- validate_preference_order(
  predictors = vi_predictors,
  preference_order = my_order,
  preference_order_auto = vi_predictors
)

#has my_order first
#excludes wrong names
#all other variables ordered according to preference_order_auto
my_order
#>  [1] "swi_max"                    "swi_min"                   
#>  [3] "koppen_zone"                "koppen_group"              
#>  [5] "koppen_description"         "soil_type"                 
#>  [7] "topo_slope"                 "topo_diversity"            
#>  [9] "topo_elevation"             "swi_mean"                  
#> [11] "swi_range"                  "soil_temperature_mean"     
#> [13] "soil_temperature_max"       "soil_temperature_min"      
#> [15] "soil_temperature_range"     "soil_sand"                 
#> [17] "soil_clay"                  "soil_silt"                 
#> [19] "soil_ph"                    "soil_soc"                  
#> [21] "soil_nitrogen"              "solar_rad_mean"            
#> [23] "solar_rad_max"              "solar_rad_min"             
#> [25] "solar_rad_range"            "growing_season_length"     
#> [27] "growing_season_temperature" "growing_season_rainfall"   
#> [29] "growing_degree_days"        "temperature_mean"          
#> [31] "temperature_max"            "temperature_min"           
#> [33] "temperature_range"          "temperature_seasonality"   
#> [35] "rainfall_mean"              "rainfall_min"              
#> [37] "rainfall_max"               "rainfall_range"            
#> [39] "evapotranspiration_mean"    "evapotranspiration_max"    
#> [41] "evapotranspiration_min"     "evapotranspiration_range"  
#> [43] "cloud_cover_mean"           "cloud_cover_max"           
#> [45] "cloud_cover_min"            "cloud_cover_range"         
#> [47] "aridity_index"              "humidity_mean"             
#> [49] "humidity_max"               "humidity_min"              
#> [51] "humidity_range"             "biogeo_ecoregion"          
#> [53] "biogeo_biome"               "biogeo_realm"              
#> [55] "country_name"               "country_population"        
#> [57] "country_gdp"                "country_income"            
#> [59] "continent"                  "region"                    
#> [61] "subregion"