【问题标题】:R doesn't accept certain Serbian characters with diacritics (č, ć)R 不接受某些带有变音符号 (č, ć) 的塞尔维亚语字符
【发布时间】:2016-06-17 16:44:32
【问题描述】:

塞尔维亚字母表在英文字母表的顶部有 5 个附加字母(š、đ、ž、č、ć)。问题是 R 不能识别 č 和 ć。字符 š、đ 和 ž 工作正常,但每当我尝试使用 č 和 ć 时,R 将它们解释为 c。

>š
Error: object 'š' not found
>ž
Error: object 'ž' not found
>đ
Error: object 'd' not found
>č
function (..., recursive = FALSE)  .Primitive("c")
>ć
function (..., recursive = FALSE)  .Primitive("c")

当我将文件读入 R 时,它总是用 c 替换 č 和 ć。

有没有办法解决这个问题?

>Sys.getlocale()
[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"

【问题讨论】:

    标签: r encoding


    【解决方案1】:

    将系统区域设置更改为特定语言可能会有所帮助。使用“UTF-8”格式应保留特殊字符 当你阅读

      read.table("file.txt",encoding="UTF-8")
    

    如果你正在写一个文件,你可以这样做

      con <- file("path/filename.txt", encoding = "UTF-8")
      write(x, file = con)
    

    【讨论】:

    • 它确实保留了除 č 和 ć 之外的所有内容,并将它们转换为 c。
    • 观察力不错。可能是以下解决方法适合您stackoverflow.com/questions/29957678/…
    • 感谢您的意见。我又做了一些测试。当我使用 encoding="UTF-8" 读取文件时,它会正确读取 č 和 ć,但是当我使用 encoding="utf-8" 读取文件时,它不会。这是为什么?问题仍然存在,是否有办法在 r 控制台中使用 č 和 ć,所以我将其保持打开状态。
    • 您是否尝试将系统语言环境设置为您阅读的字符的语言?
    猜你喜欢
    • 2018-03-22
    • 1970-01-01
    • 2019-03-03
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2021-10-07
    相关资源
    最近更新 更多