【问题标题】:How to change the locale of R?如何更改 R 的语言环境?
【发布时间】:2013-04-27 04:43:56
【问题描述】:

我在 Ubuntu 12.10 上使用 R 版本 2.15.3 (2013-03-01)。该系统是德文的,R 也是如此。这在搜索错误消息时很不方便。

以这种方式在 xterm 中执行 R $ LANG="C" R 可以部分解决问题。然后 R 用英文显示所有内容。但是当以这种方式加载 RStudio 时,R 解释器仍然是德语。所以我正在寻找一种在 R 本身中更改 R 语言环境的方法。

我发现了这个:How to change language settings in R,但Sys.setenv(LANG = "en") 对我不起作用:

2+x
# Fehler: Objekt 'x' nicht gefunden
Sys.setenv(LANG = "en")
2+x
# Fehler: Objekt 'x' nicht gefunden

我也尝试了Sys.setenv(LANG = "en_US.UTF-8"),但没有成功。

Sys.getlocale()的输出

Sys.getlocale()
# [1] "LC_CTYPE=de_DE.UTF-8;LC_NUMERIC=C;LC_TIME=de_DE.UTF-8;
# LC_COLLATE=de_DE.UTF-8;LC_MONETARY=de_DE.UTF-8;LC_MESSAGES=de_DE.UTF-8;
# LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;
# LC_IDENTIFICATION=C"

(为方便起见添加了线刹车)

【问题讨论】:

  • 您是否尝试过在引号之间和/或未缩短的LANG(即LANGUAGE)?无论如何,我不确定这是解决问题的方法;即使Sys.getlocale 到处都显示Portuguese_Brazil.1252,我的系统也会显示英文错误。

标签: r locale


【解决方案1】:

我认为这是您的 Ubuntu 的问题,而不是 R。如果操作系统没有正确的“en”区域设置,R 将无法使用它。查看操作系统语言环境。或者使用语言环境“C”而不是“en”可能仍然有效。

Sys.setenv(LANG='C')

【讨论】:

  • 仍然不起作用 :-( 我将 R 识别的语言环境添加到原始问题中。
【解决方案2】:

试试:

Sys.setlocale("LC_MESSAGES", 'en_GB.UTF-8')

取自:http://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Localization-of-messages,详情请咨询。

【讨论】:

  • 为了完整起见,您还可以尝试“EN”和“en_GB”的值吗?之后,我认为有必要确定 EN 文件是否丢失或损坏。
  • 我尝试了“EN”的其他几种变体,但 R 仍然是德语。我不认为 EN 文件丢失或损坏,因为以 "LANG="C" 开头的 R 有效。
【解决方案3】:
Sys.setlocale("LC_MESSAGES", 'en_GB.UTF-8')
Sys.setenv(LANG = "en_US.UTF-8")

这 2 对我有用。 eclipse R 中没有更多的波兰错误消息。虽然我认为只有第二个有效。谢谢

编辑:虽然我每次重新启动 R 环境时都必须执行这些操作。

【讨论】:

  • 是否有关于重启的解决方法?我面临同样的问题...
【解决方案4】:

试试Sys.setlocale("LC_TIME", "English")

【讨论】:

    【解决方案5】:

    刚刚遇到了同样的问题,并在 Windows/Linux 上找到了适合我的解决方案:

    Sys.setlocale("LC_ALL","English")
    

    【讨论】:

    • 这不会改变我的情况下错误消息的语言(Ubuntu + OSX),试试 e。 G。 log("a") 并检查错误消息的语言
    • “警告消息:在Sys.setlocale("LC_ALL", "English"):操作系统报告将语言环境设置为“英语”的请求无法兑现”
    • 原因是语言环境是特定于平台的。 "English" 适用于 Windows,但不适用于 OpenSUSE Leap 15.2。
    【解决方案6】:

    Ubuntu (14.04) 中,这是对我有用的解决方案:

    编辑主目录中的 .Renviron 文件并添加以下行:

    LANGUAGE="en_US.utf8"
    # for R with British accent use en_GB.utf8
    

    然后重启R。

    【讨论】:

      【解决方案7】:

      我遇到了同样的问题。我通过将我的 Macbook 的系统偏好设置-> 区域更改为美国来解决它。然后,重新安装R。然后,系统语言最终改变了。

      sessionInfo()

      语言环境: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

      【讨论】:

        【解决方案8】:

        在我的情况下(OSX High Sierra + Ubuntu 14.04),我只能使用此命令将 R 输出的语言切换为英语(无需重新启动 R 会话即可立即生效):

        Sys.setenv("LANGUAGE"="EN")
        

        要永久更改语言,请将上述行添加到您的Rprofile.site 文件(请参阅?Startup)或在您的主文件夹(~/)中创建/编辑文件.Renviron,然后输入带有@987654326 的行@ 或类似的(如 LANGUAGE="fr_FR.utf8" 表示法语,在 Linux 中默认使用 UTF-8 编码)。

        【讨论】:

          【解决方案9】:

          你只需要

          1. 打开终端
          2. 写入或粘贴:默认写入 org.R-project.R force.LANG en_US.UTF-8
          3. 关闭终端并重启R

          它在 OS X 中对我有用

          【讨论】:

            【解决方案10】:

            如果你想暂时这样做,你可以尝试从命令行启动 R,并在前面设置语言:

            # start R with LANGUAGE set to Mandarin
            LANGUAGE=zh_CN.UTF-8 R --no-save
            # do R stuff
            q()
            # any LANGUAGE set in your env will be unaffected afterwards
            env | grep LANGUAGE
            

            【讨论】:

            • 我认为以这种方式预设语言环境来启动 R 很重要,特别是如果您需要弄乱 LC_CTYPE 或 LC_ALL。就我而言,我将 LC_ALL 设置为 ja_JP.SJIS 并且我还必须更改终端的编码。像魅力一样工作。
            【解决方案11】:

            令人惊讶的是,在这么多答案中,我没有看到我自己更喜欢的答案。

            echo 'LC_ALL=C' >> ~/.Renviron
            

            这将在.Renviron 文件中附加(或创建如果不存在)一个环境配置行,该文件旨在完全用于此目的。

            之后,任何启动的R 进程都应该已经在.Renviron 文件中指定了语言环境。

            【讨论】:

            • 这也适用于 /etc/R/Renviron 文件(使用 Ubuntu 20.04 LTS),+1。
            猜你喜欢
            • 2023-03-24
            • 1970-01-01
            • 2021-03-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多