在R中的包小插图中的平台特定代码('Sys.setlocale()')

3htmauhk  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(93)

我的软件包简介中有平台特定的代码:

x <- c("01JAN2020:00:00:00", "15JAN2020:00:00:00")
# This is plaftform-spedific
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的不同平台上运行)

insrf1ej

insrf1ej1#

我不知道你是否可以有平台特定的小插曲来源,但是,我想说,你通常不需要。
在您的示例中,只有当目的是向用户展示如何以特定于平台的方式进行操作时,我才认为需要具有特定于平台的内容。
如果是这样的话,展示如何在所有平台上执行,但不要评估代码,然后用平台无关的方法创建结果(可能使用dput输出)。
否则,只需使用与平台无关的方法,例如使用标准%Y-%m-%d %H:%M:%S的字符串。在您的示例中,Sys.setlocale("LC_TIME", "C")可能也是一种有用的方法。

相关问题