You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未设置区域设置时R为何显示德法混合错误消息?

R在macOS Monterey下显示混合语言错误消息的问题

我在macOS Monterey系统上从CRAN安装了R 4.2.1(arm64版本),系统首选语言设置为英文,但R却显示德语与法语混合的错误消息,这导致测试和CI流水线出现故障:

base::xyz
# Fehler: Objekt 'xyz' nicht gefunden

utils::xyz
# Fehler: 'xyz' n’est un object exporté depuis 'namespace:utils'

我未手动设置特定区域设置(尤其确认了LC_MESSAGES的设置):

$ locale
LANG=""
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

$ env | grep 'LANG\|LC'
LC_TERMINAL_VERSION=3.4.16
LC_CTYPE=UTF-8
LC_TERMINAL=iTerm2

R自身检测到的区域设置如下:

lapply(.LC.categories, Sys.getlocale) |>
    structure(names = .LC.categories, class = 'simple.list')
               _
LC_ALL         C/UTF-8/C/C/C/C
LC_COLLATE     C
LC_CTYPE       UTF-8
LC_MONETARY    C
LC_NUMERIC     C
LC_TIME        C
LC_MESSAGES    C
LC_PAPER
LC_MEASUREMENT

此外,该问题仅出现在错误消息显示中:解析或格式化数字、日期时,R的行为不受区域设置影响。

我可通过显式设置LC_MESSAGES或LANG来临时解决此问题,例如:

$ LANG=en_GB.utf-8 Rscript -e 'utils::foo'
Error: 'foo' is not an exported object from 'namespace:utils'

但我不理解为何需要额外设置——明明LC_MESSAGES已经设为C,却仍出现混合语言的错误消息,也不清楚R的这种异常区域设置偏好来自何处。


补充信息:我当前位于瑞士,公网IP地址归属瑞士,电脑购自瑞士苹果商店,但系统偏好设置中语言已设为英文(默认情况下shell似乎未识别此设置)。另外,我通过命令行启动R,未使用GUI。

内容的提问来源于stack exchange,提问作者Konrad Rudolph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 09:54:23