使用 model.matrix 编码错误的西里尔字母

Cyrillic letters encoded wrong using model.matrix

我有一个数据框,其中列名和值中都包含西里尔字母(俄语),需要使用 model.matrix 进行转换。

model.matrix 将这些变量转换为 unicode 字符,例如 .有没有办法将它们转换回来,或者首先避免转换?

library(tibble)
x <- tribble(~"тест", ~value1, ~value2,
         "тест", 5, 10,
         "тест2", 6, 11)
m <- model.matrix(value1 ~ ., data = x)

预期结果是 model.matrix 包含应有的 UTF-8 字符。

问题已通过 stringi 解决:

library(stringi)
colnames(m) <- stri_unescape_unicode(gsub("<U\+(....)>",
                                    "\\u\1",
                                    colnames(m)))