如何在安装R之后消除警告信息?

24
在我的OSX上,通过Homebrew安装R并且没有其他设置的情况下,可以获得以下输出:
During startup - Warning messages:
1: Setting LC_CTYPE failed, using "C"
2: Setting LC_COLLATE failed, using "C"
3: Setting LC_TIME failed, using "C"
4: Setting LC_MESSAGES failed, using "C"
5: Setting LC_MONETARY failed, using "C"         # this line is not occurring in OSX 10.10.1 Yosemite but other four are.

我找到了一个现有的问题,但解决方案对我不起作用。我做了以下步骤:

  1. 打开终端
  2. 输入或粘贴:defaults write org.R-project.R force.LANG en_US.UTF-8
  3. 关闭终端
  4. 启动R

警告信息仍然显示。我猜这只适用于使用R项目页面上的软件包安装R。

如何在OSX中安装R后消除这些警告信息?


@RichardScriven,我相信这是一个很好的建议,但我不太明白。我是在终端中运行R的。在我的应用程序目录中没有应用程序。我知道当从项目页面使用安装程序包安装R时,会有一个应用程序。 - Jan Deinhard
你是对的。我已经移除了标签。 - Jan Deinhard
在Yosemite 10.10.1中,如果没有“5: - -”这行,在安装R的过程中我也会遇到相同的错误,这个错误可能与我所说的重复帖子不同:https://dev59.com/CGkw5IYBdhLWcg3wutDK 。在其他主题中也可能存在相同的问题。实际上,我是没有使用Homebrew安装R的,但我仍然遇到了同样的问题,因此我建议在标题和正文中删除Homebrew。 - Léo Léopold Hertz 준영
这个错误信息真的很烦人...不管怎样,有人能告诉我如何创建一个自定义库来存储从 CRAN 下载的软件包吗?在 Mac OS X 上似乎默认目录存在问题... - Manoj Kumar
5个回答

18

问题:未设置表示使用何种编码的本地化变量。要查看此问题,请在终端中键入locale,您可能会得到类似以下内容:

LANG=
LC_COLLATE=
LC_CTYPE=
LC_MESSAGES=
LC_MONETARY=
LC_NUMERIC="en_US.UTF-8"
LC_TIME=
LC_ALL=

LC_NUMERIC 可能已设置,也可能未设置,但根据您的错误提示,其余变量未被设置或设置为 R 无法使用的内容。如果这些变量为空,R 将会抱怨。要解决问题:

选项1:终端首选项 转到终端首选项。在“高级”选项卡下,确保“文本编码”设置为“Unicode(UTF-8)”(或您需要的任何内容)。确保勾选“在启动时设置语言环境变量”下面的复选框。取消勾选它往往会导致语言环境变量未设置或设置为“C”,除非您已更改了 .bash_profile、.bashrc 或 .profile(取决于您的系统)。这可能足以解决您的问题。如果不行:

选项2:从 R 中设置 要从 R 内部设置它们,请输入:

R> Sys.setenv(LANG="en_US.UTF-8")
R> Sys.setenv(LC_ALL="en_US.UTF-8")

......这应该设置R正在抱怨的所有变量。

选项3:从终端设置 要从终端设置它们,请键入

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

...这应该设置R正在抱怨的其余变量。

检查:在终端中再次键入locale。 您应该得到:

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

重新启动R,你就应该好了。


1
我按照您的指示做了一切,但是没有得到您所说的locale输出。我得到的是LANG=; LC_COLLATE="C"; LC_CTYPE="en_US.UTF-8"; LC_MESSAGES="C"; LC_MONETARY="C"; LC_NUMERIC="C"; LC_TIME="C"; LC_ALL=;"。还有其他选项吗? - Léo Léopold Hertz 준영
你什么时候得到它?在手动设置变量“Option 3”之后,但在重置之前,它应该看起来像“Check”语言环境。如果在重新启动终端时重置,则可能是因为终端偏好设置中的复选框未被选中,或者因为您在.bash_profile、.bashrc或.profle(在OS X上,应该是.bash_profile)中有不同的启动指令。OS X的“语言和地区”Prefpane(名称因OS X版本而异)也会影响语言环境,但这似乎不是这里发生的情况。 - alistaire

15

4
将以下内容添加到您的 $HOME/.bashrc 文件中。
export LANG=en_US.UTF-8

似乎由于某种原因,在启动终端时未能调用$HOME/.profile文件。

2

与alistaire的回答相关,我只在我的~/.profile文件中更改了LANG变量:

export LANG=en_US.UTF-8

然后,重新启动终端会话(或source ~/.profile),然后就可以使用了。


您的程序无法正常工作。我将该命令插入到了$HOME/.bashrc中,它可以正常工作。看起来$HOME/.profile在提示符启动时没有自动加载。 - Léo Léopold Hertz 준영
@Masi - 在修改.profile文件后,你是否进行了系统重启? - Dason
@Dason 不,我认为这是错误的原因。 - Léo Léopold Hertz 준영

2

我打开了系统偏好设置/语言和地区,并将美国选为我的地区,所有警告都消失了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接