When saving to csv, the default data class/type for factors is the character labels. This function replaces those with the numeric factor levels.

e_data_convert_factor_to_numeric(dat)

Arguments

dat

data.frame or tibble

Value

dat with factor variables converted to numeric

Examples

dat <- dat_mtcars_e
str(dat)
#> tibble [32 × 12] (S3: tbl_df/tbl/data.frame)
#>  $ model: chr [1:32] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710" "Hornet 4 Drive" ...
#>   ..- attr(*, "label")= chr "Model"
#>  $ mpg  : num [1:32] 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
#>   ..- attr(*, "label")= chr "Miles/(US) gallon"
#>  $ cyl  : Factor w/ 3 levels "four","six","eight": 2 2 1 2 3 2 3 1 1 2 ...
#>   ..- attr(*, "label")= chr "Number of cylinders"
#>  $ disp : num [1:32] 160 160 108 258 360 ...
#>   ..- attr(*, "label")= chr "Displacement (cu.in.)"
#>  $ hp   : num [1:32] 110 110 93 110 175 105 245 62 95 123 ...
#>   ..- attr(*, "label")= chr "Gross horsepower"
#>  $ drat : num [1:32] 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
#>   ..- attr(*, "label")= chr "Rear axle ratio"
#>  $ wt   : num [1:32] 2.62 2.88 2.32 3.21 3.44 ...
#>   ..- attr(*, "label")= chr "Weight (1000 lbs)"
#>  $ qsec : num [1:32] 16.5 17 18.6 19.4 17 ...
#>   ..- attr(*, "label")= chr "1/4 mile time"
#>  $ vs   : Factor w/ 2 levels "V-shaped","straight": 1 1 2 2 1 2 1 2 2 2 ...
#>   ..- attr(*, "label")= chr "Engine"
#>  $ am   : Factor w/ 2 levels "automatic","manual": 2 2 2 1 1 1 1 1 1 1 ...
#>   ..- attr(*, "label")= chr "Transmission"
#>  $ gear : num [1:32] 4 4 4 3 3 3 3 4 4 4 ...
#>   ..- attr(*, "label")= chr "Number of forward gears"
#>  $ carb : num [1:32] 4 4 1 1 2 1 4 2 2 4 ...
#>   ..- attr(*, "label")= chr "Number of carburetors"

dat2 <- dat %>% e_data_convert_factor_to_numeric()
str(dat2)
#> tibble [32 × 12] (S3: tbl_df/tbl/data.frame)
#>  $ model: chr [1:32] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710" "Hornet 4 Drive" ...
#>   ..- attr(*, "label")= chr "Model"
#>  $ mpg  : num [1:32] 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
#>   ..- attr(*, "label")= chr "Miles/(US) gallon"
#>  $ cyl  : num [1:32] 2 2 1 2 3 2 3 1 1 2 ...
#>  $ disp : num [1:32] 160 160 108 258 360 ...
#>   ..- attr(*, "label")= chr "Displacement (cu.in.)"
#>  $ hp   : num [1:32] 110 110 93 110 175 105 245 62 95 123 ...
#>   ..- attr(*, "label")= chr "Gross horsepower"
#>  $ drat : num [1:32] 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
#>   ..- attr(*, "label")= chr "Rear axle ratio"
#>  $ wt   : num [1:32] 2.62 2.88 2.32 3.21 3.44 ...
#>   ..- attr(*, "label")= chr "Weight (1000 lbs)"
#>  $ qsec : num [1:32] 16.5 17 18.6 19.4 17 ...
#>   ..- attr(*, "label")= chr "1/4 mile time"
#>  $ vs   : num [1:32] 1 1 2 2 1 2 1 2 2 2 ...
#>  $ am   : num [1:32] 2 2 2 1 1 1 1 1 1 1 ...
#>  $ gear : num [1:32] 4 4 4 3 3 3 3 4 4 4 ...
#>   ..- attr(*, "label")= chr "Number of forward gears"
#>  $ carb : num [1:32] 4 4 1 1 2 1 4 2 2 4 ...
#>   ..- attr(*, "label")= chr "Number of carburetors"

# readr::write_csv(x = dat , file = "dat.csv"    )
# readr::write_csv(x = dat2, file = "dat_num.csv")