library(purrr)
my_fun <- function(x) {
x %>%
strsplit("") %>%
map(factor, levels = letters) %>%
map(as.numeric)
}
x <- c("abba", "hello")
my_fun(x)
#> [[1]]
#> [1] 1 2 2 1
#>
#> [[2]]
#> [1] 8 5 12 12 15
Здесь мы используем, что факторы - это целые числа под капотом.
Пусть str
будет символьным вектором, например str <- c('a', 'b', 'b', 'a')
. Когда мы запускаем factor(str, levels = letters)
, мы конвертируем его в коэффициент с 26 уровнями: «a», «b», «c» и так далее. Если к нему применить as.integer
, a
станет 1, потому что это первый уровень, 'b' - 2 и т. Д.