It uses 'tidyeval' and 'dplyr' to create dummy variables based for categorical variables.

add_dummy_variables(df, x, values = c(), auto_values = FALSE,
  remove_original = TRUE)

Arguments

df

A Local or remote data frame

x

Categorical variable

values

Possible known values of the categorical variable. If not passed then the function will take an additional step to figure the unique values of the variable.

auto_values

Safeguard argument to prevent the function from figuring the unique values if the values argument is empty. If it is ok for this function to obtain the unique values, set to TRUE. Defaults to FALSE.

remove_original

It removes the original variable from the returned table. Defaults to TRUE.

Examples

library(dplyr)
#> Warning: package 'dplyr' was built under R version 3.6.1
#> #> Attaching package: 'dplyr'
#> The following object is masked from 'package:testthat': #> #> matches
#> The following objects are masked from 'package:stats': #> #> filter, lag
#> The following objects are masked from 'package:base': #> #> intersect, setdiff, setequal, union
mtcars %>% add_dummy_variables(cyl, values = c(4, 6, 8))
#> mpg disp hp drat wt qsec vs am gear carb cyl_6 cyl_8 #> 1 21.0 160.0 110 3.90 2.620 16.46 0 1 4 4 1 0 #> 2 21.0 160.0 110 3.90 2.875 17.02 0 1 4 4 1 0 #> 3 22.8 108.0 93 3.85 2.320 18.61 1 1 4 1 0 0 #> 4 21.4 258.0 110 3.08 3.215 19.44 1 0 3 1 1 0 #> 5 18.7 360.0 175 3.15 3.440 17.02 0 0 3 2 0 1 #> 6 18.1 225.0 105 2.76 3.460 20.22 1 0 3 1 1 0 #> 7 14.3 360.0 245 3.21 3.570 15.84 0 0 3 4 0 1 #> 8 24.4 146.7 62 3.69 3.190 20.00 1 0 4 2 0 0 #> 9 22.8 140.8 95 3.92 3.150 22.90 1 0 4 2 0 0 #> 10 19.2 167.6 123 3.92 3.440 18.30 1 0 4 4 1 0 #> 11 17.8 167.6 123 3.92 3.440 18.90 1 0 4 4 1 0 #> 12 16.4 275.8 180 3.07 4.070 17.40 0 0 3 3 0 1 #> 13 17.3 275.8 180 3.07 3.730 17.60 0 0 3 3 0 1 #> 14 15.2 275.8 180 3.07 3.780 18.00 0 0 3 3 0 1 #> 15 10.4 472.0 205 2.93 5.250 17.98 0 0 3 4 0 1 #> 16 10.4 460.0 215 3.00 5.424 17.82 0 0 3 4 0 1 #> 17 14.7 440.0 230 3.23 5.345 17.42 0 0 3 4 0 1 #> 18 32.4 78.7 66 4.08 2.200 19.47 1 1 4 1 0 0 #> 19 30.4 75.7 52 4.93 1.615 18.52 1 1 4 2 0 0 #> 20 33.9 71.1 65 4.22 1.835 19.90 1 1 4 1 0 0 #> 21 21.5 120.1 97 3.70 2.465 20.01 1 0 3 1 0 0 #> 22 15.5 318.0 150 2.76 3.520 16.87 0 0 3 2 0 1 #> 23 15.2 304.0 150 3.15 3.435 17.30 0 0 3 2 0 1 #> 24 13.3 350.0 245 3.73 3.840 15.41 0 0 3 4 0 1 #> 25 19.2 400.0 175 3.08 3.845 17.05 0 0 3 2 0 1 #> 26 27.3 79.0 66 4.08 1.935 18.90 1 1 4 1 0 0 #> 27 26.0 120.3 91 4.43 2.140 16.70 0 1 5 2 0 0 #> 28 30.4 95.1 113 3.77 1.513 16.90 1 1 5 2 0 0 #> 29 15.8 351.0 264 4.22 3.170 14.50 0 1 5 4 0 1 #> 30 19.7 145.0 175 3.62 2.770 15.50 0 1 5 6 1 0 #> 31 15.0 301.0 335 3.54 3.570 14.60 0 1 5 8 0 1 #> 32 21.4 121.0 109 4.11 2.780 18.60 1 1 4 2 0 0
mtcars %>% add_dummy_variables(cyl, auto_values = TRUE)
#> mpg disp hp drat wt qsec vs am gear carb cyl_6 cyl_8 #> 1 21.0 160.0 110 3.90 2.620 16.46 0 1 4 4 1 0 #> 2 21.0 160.0 110 3.90 2.875 17.02 0 1 4 4 1 0 #> 3 22.8 108.0 93 3.85 2.320 18.61 1 1 4 1 0 0 #> 4 21.4 258.0 110 3.08 3.215 19.44 1 0 3 1 1 0 #> 5 18.7 360.0 175 3.15 3.440 17.02 0 0 3 2 0 1 #> 6 18.1 225.0 105 2.76 3.460 20.22 1 0 3 1 1 0 #> 7 14.3 360.0 245 3.21 3.570 15.84 0 0 3 4 0 1 #> 8 24.4 146.7 62 3.69 3.190 20.00 1 0 4 2 0 0 #> 9 22.8 140.8 95 3.92 3.150 22.90 1 0 4 2 0 0 #> 10 19.2 167.6 123 3.92 3.440 18.30 1 0 4 4 1 0 #> 11 17.8 167.6 123 3.92 3.440 18.90 1 0 4 4 1 0 #> 12 16.4 275.8 180 3.07 4.070 17.40 0 0 3 3 0 1 #> 13 17.3 275.8 180 3.07 3.730 17.60 0 0 3 3 0 1 #> 14 15.2 275.8 180 3.07 3.780 18.00 0 0 3 3 0 1 #> 15 10.4 472.0 205 2.93 5.250 17.98 0 0 3 4 0 1 #> 16 10.4 460.0 215 3.00 5.424 17.82 0 0 3 4 0 1 #> 17 14.7 440.0 230 3.23 5.345 17.42 0 0 3 4 0 1 #> 18 32.4 78.7 66 4.08 2.200 19.47 1 1 4 1 0 0 #> 19 30.4 75.7 52 4.93 1.615 18.52 1 1 4 2 0 0 #> 20 33.9 71.1 65 4.22 1.835 19.90 1 1 4 1 0 0 #> 21 21.5 120.1 97 3.70 2.465 20.01 1 0 3 1 0 0 #> 22 15.5 318.0 150 2.76 3.520 16.87 0 0 3 2 0 1 #> 23 15.2 304.0 150 3.15 3.435 17.30 0 0 3 2 0 1 #> 24 13.3 350.0 245 3.73 3.840 15.41 0 0 3 4 0 1 #> 25 19.2 400.0 175 3.08 3.845 17.05 0 0 3 2 0 1 #> 26 27.3 79.0 66 4.08 1.935 18.90 1 1 4 1 0 0 #> 27 26.0 120.3 91 4.43 2.140 16.70 0 1 5 2 0 0 #> 28 30.4 95.1 113 3.77 1.513 16.90 1 1 5 2 0 0 #> 29 15.8 351.0 264 4.22 3.170 14.50 0 1 5 4 0 1 #> 30 19.7 145.0 175 3.62 2.770 15.50 0 1 5 6 1 0 #> 31 15.0 301.0 335 3.54 3.570 14.60 0 1 5 8 0 1 #> 32 21.4 121.0 109 4.11 2.780 18.60 1 1 4 2 0 0