R 中包小插图中的平台相关代码 (Sys.setlocale)

Platform dependent code (Sys.setlocale) in package vignette in R

在我的包小插图中,我有平台相关代码:

x <- c("01JAN2020:00:00:00", "15JAN2020:00:00:00")
# This is plaftform dependant
Sys.setlocale("LC_TIME", "English")
as.Date(x, "%d%b%Y")
# [1] "2020-01-01" "2020-01-15"

小插图在我的 Windows 机器上通过 R CMD check --as-cran,但在 Linux 机器上会失败(需要 locale = "en_US")。

这里有好的做法吗?如果我按原样将包裹提交给 CRAN,它会起作用吗? (根据 https://cran.r-project.org/web/checks/check_summary.html 在 CRAN 的不同平台上检查似乎是 运行)

我不知道你是否有 platform-specific 小插图的来源。但是,我会说你通常不需要那个。

在您的示例中,如果目的是向用户展示如何以 platform-specific 方式进行操作,我只能看到需要任何东西 platform-specific。

如果是这种情况,请展示如何在所有平台上执行此操作,但不要评估代码。然后以 platform-agnostic 方法创建结果(可能使用 dput 输出)。

否则,只需使用 platform-agnostic 方法,例如使用标准 %Y-%m-%d %H:%M:%S 格式的字符串。在您的示例中,Sys.setlocale("LC_TIME", "C") 也可能是一种有用的方法。