【问题标题】:Cyrillic letters encoded wrong using model.matrix使用 model.matrix 编码错误的西里尔字母
【发布时间】:2019-07-01 07:29:16
【问题描述】:

我有一个数据框,其中包含需要使用 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 字符。

【问题讨论】:

  • 可能是区域设置问题
  • 听起来您使用的是 Windows。 Windows 不支持 UTF-8 语言环境,因此那里经常会搞砸。在 UTF-8 语言环境中,您的代码看起来不错。

标签: r encoding cyrillic model.matrix


【解决方案1】:

使用stringi解决了问题:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2023-04-10
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多