使用 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)))
我有一个数据框,其中列名和值中都包含西里尔字母(俄语),需要使用 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)))