当您手动运行(或使用devtools :: test())所有测试运行正常时,有时R CMD检查失败。
当我想要使用启动包比较bootstrapping的结果时,我遇到了其中一个问题。 我进入了一个兔子洞,寻找由并行计算(由启动完成)和随机数生成器(RNG)引起的问题。
这些都不是答案。
答案 0 :(得分:5)
最后,问题是微不足道的。 我使用base :: sort()来创建一个因子的级别。 (确保它们始终对齐,即使数据的顺序不同)
问题是,默认排序方法取决于系统的区域设置。 R CMD检查使用的语言环境与交互式会话不同。
问题在于: R交互使用:LC_COLLATE = en_US.UTF-8; 使用的R CMD检查:LC_COLLATE = C;
在base :: sort的细节中提到:
Except for method ‘"radix"’, the sort order for character vectors
will depend on the collating sequence of the locale in use:
see ‘Comparison’. The sort order for factors is the order of their
levels (which is particularly appropriate for ordered factors).
我现在通过指定基数排序方法解决了这个问题。
现在,一切正常。