Skip to content

Commit b267185

Browse files
committed
Added integer_encoder() function
1 parent 6f6546c commit b267185

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

NAMESPACE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Generated by roxygen2: do not edit by hand
22

33
export("%>%")
4+
export(integer_encoder)
45
export(multi_label_binariser)
56
export(multi_label_binarizer)
67
export(one_hot_encoder)

R/integer_encoder.R

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#' Integer Encoder
2+
#'
3+
#' @param data Input data frame
4+
#' @param feature Unquoted form of the feature/column to encode
5+
#'
6+
#' @return
7+
#' @export
8+
#'
9+
#' @examples
10+
#' set.seed(11)
11+
#' integer_encoder(iris[sample(1:150, 10),], Species)
12+
integer_encoder <- function(data, feature) {
13+
14+
# Process levels and labels
15+
levels_raw <- data %>%
16+
dplyr::pull({{ feature }}) %>%
17+
base::as.character() %>%
18+
base::unique() %>%
19+
base::sort()
20+
21+
labels_raw <- base::seq(1, base::length(levels_raw), 1)
22+
23+
# Encoding
24+
data <- data %>%
25+
dplyr::mutate_at(
26+
.vars = dplyr::vars({{ feature }}),
27+
.funs = function(x) {
28+
base::factor(
29+
x,
30+
levels = levels_raw,
31+
labels = labels_raw
32+
)
33+
}
34+
)
35+
36+
return(data)
37+
}

man/integer_encoder.Rd

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)