如何更改R中的语言设置

ags*_*udy 93 r

我的错误消息以法语显示.如何更改系统语言设置,以便错误消息以英语显示?

Cha*_*ase 93

您可以使用该Sys.setenv()功能进行设置.我的R会话默认为英语,所以我将其设置为法语然后再返回:

> Sys.setenv(LANG = "fr")
> 2 + x
Erreur : objet 'x' introuvable
> Sys.setenv(LANG = "en")
> 2 + x
Error: object 'x' not found
Run Code Online (Sandbox Code Playgroud)

可以在此处找到缩写列表.

Sys.getenv() 为您提供所有已设置的环境变量的列表.

  • 这暂时改变了Lang(在R会话期间).要一次性更改它,您需要将环境变量添加到系统中,然后重新启动RStudio以获得此效果. (14认同)
  • @SabDeM - 是的,确实如此。注意上面 agstudy 的注释并设置环境变量:http://stat.ethz.ch/R-manual/R-devel/library/base/html/EnvVar.html (2认同)

Ale*_*son 23

在RStudio for Windows的情况下,我成功地按照R for Windows FAQ中的说明更改了语言,特别是我写道:

language = EN
Run Code Online (Sandbox Code Playgroud)

在文件内部Rconsole(在我的安装中C:\Program Files\R\R-2.15.2\etc\Rconsole); 这也适用于命令Rscript.

例如,您可以Rconsole从命令提示符处使用以下两个命令找到该文件:

cd \

dir Rconsole /s

第一个将根作为当前目录,第二个查找Rconsole文件.

在下面的屏幕截图中,您将该Rconsole文件放在该文件夹中C:\Program Files\R\R-3.4.1\etc.

您可能有多个位置,在这种情况下,您可以编辑所有Rconsole文件.

在此输入图像描述

之后,您可以Rconsole使用您喜欢的编辑器打开文件并查找该行language =,然后EN在该行的末尾追加.

在下面的屏幕截图中,有趣的行是数字70,你必须EN在它的末尾附加. 在此输入图像描述


小智 20

对于mac用户,我在R for Mac FAQ上找到了这个

如果您使用非标准设置(例如,不同于格式的语言),您可以通过设置`force.LANG'默认设置来覆盖执行的自动检测,例如

 defaults write org.R-project.R force.LANG en_US.UTF-8 
Run Code Online (Sandbox Code Playgroud)

当在终端中运行时,无论系统设置如何,它都将强制执行美国英语设置.如果您不知道什么是终端,则可以使用此R命令:

 system("defaults write org.R-project.R force.LANG en_US.UTF-8") 
Run Code Online (Sandbox Code Playgroud)

但不要忘记退出R然后再次启动R.app.请注意,您必须始终使用语言环境的`.UTF-8'版本,否则R.app将无法正常工作.

这有助于我将控制台语言从中文更改为英文.


Bil*_*low 13

这可以从命令行工作:

$ export LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

以上其他答案都不适合我


小智 10

如果您使用Ubuntu,您将设置

LANGUAGE=en 
Run Code Online (Sandbox Code Playgroud)

在/etc/R/Renviron.site中.


小智 8

为了使其永久有效,在 R 和 Rstudio(使用 Win 10)中,一种方法是最初每次在后台自动运行脚本。

不再需要更改影响 Windows 的系统语言。不再只使用 R,但在 Rstudio 中失败。不再需要每次都手动运行脚本。不再有管理员权限但失败。不再设置快捷方式却失败。

步骤 1. 使用系统搜索找到名为“Rprofile”的文件

我的回应是

C:\Program Files\R\R-4.0.5\library\base\R

C:\Program Files\R\R-4.0.5\etc

步骤 2. 编辑 C:\Program Files\R\R-4.0.5\library\base\R\Rprofile

内容:

  • 这是系统 Rprofile 文件。它始终在启动时运行。
  • 附加命令可以放置在站点或用户 Rprofile 文件中
  • (参见?Rprofile)...等等。

步骤 3. 在脚本末尾添加 Sys.setenv(LANGUAGE="en")

local({
    Sys.setenv(LANGUAGE="en")
})
Run Code Online (Sandbox Code Playgroud)

PS 如果您遇到授权/保存问题,请将此文件移动到桌面并编辑后替换原始文件。


gio*_*mai 6

您可能还需要知道的区别,例如,Sys.setenv(LANG = "ru")Sys.setlocale(locale = "ru_RU.utf8")

> Sys.setlocale(locale = "ru_RU.utf8")
[1] "LC_CTYPE=ru_RU.utf8;LC_NUMERIC=C;LC_TIME=ru_RU.utf8;LC_COLLATE=ru_RU.utf8;LC_MONETARY=ru_RU.utf8;LC_MESSAGES=en_IE.utf8;LC_PAPER=en_IE.utf8;LC_NAME=en_IE.utf8;LC_ADDRESS=en_IE.utf8;LC_TELEPHONE=en_IE.utf8;LC_MEASUREMENT=en_IE.utf8;LC_IDENTIFICATION=en_IE.utf8"
Run Code Online (Sandbox Code Playgroud)

如果您有兴趣更改引用这些元素之一的函数的行为(例如strptime提取日期),则应使用Sys.setlocale(). 有关?Sys.setlocale更多详细信息,请参阅。要查看 linux 系统上所有可用的语言,您可以运行

system("locale -a", intern = TRUE)
Run Code Online (Sandbox Code Playgroud)


小智 5

首先输入: system("defaults write org.R-project.R force.LANG en_US.UTF-8") 然后你会得到一个索引号(在我的例子中是 127)

然后输入: Sys.setenv(LANG = "en") 然后输入数字并输入 127


jog*_*ogo 5

对我来说工作:

Sys.setlocale("LC_MESSAGES", "en_US.utf8")
Run Code Online (Sandbox Code Playgroud)

测试:

> Sys.setlocale("LC_MESSAGES", "en_US.utf8")
[1] "en_US.utf8"
> x[3]
Error: object 'x' not found
Run Code Online (Sandbox Code Playgroud)

还致力于获取英文消息:

Sys.setlocale("LC_MESSAGES", "C")
Run Code Online (Sandbox Code Playgroud)

重置为我使用的德语消息

Sys.setlocale("LC_MESSAGES", "de_DE.utf8")
Run Code Online (Sandbox Code Playgroud)

这是我的开始sessionInfo

> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.2 LTS
Run Code Online (Sandbox Code Playgroud)