我收到一封电子邮件,说我的R包有一些Solaris问题。
在邮件中说:
最近更新/添加的带有Solaris ERROR的CRAN包
对于imputeTS,这可以在Linux上重现,而不需要长时间的双倍:请参阅 §1.6手册。重载模糊性在§1.6.4中有所涉及 手册。
我认为手册本手册的意思是: https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Portable-C-and-C_002b_002b-code
问题是,我真的不知道该怎么做以及如何修复错误。
CRAN包检查错误消息如下: (另见https://cran.r-project.org/web/checks/check_results_imputeTS.html)
版本:2.0检查:测试结果:错误 跑'testthat.R'[321s / 321s] 在'tests / testthat.R'中运行测试失败。 完成输出:
库(testthat) test_check( “imputeTS”) 加载所需的包:imputeTS 1.失败:使用修改后的tsAirgap数据集(最后的附加NA)校正所有选项的结果(@ test-na.kalman.R#14) round(mean(na.kalman(x,model =“StructTS”,smooth = T)),digits = 4)与276.1923不同。 1/1不匹配 [1] 276 - 276 == -1e-04
问题的代码如下(错误实际出现在单元测试中,而不是代码本身)
test_that("Correct results for all options with a modifed tsAirgap dataset (additionalNAs at start)",
{
#Using mean over resulting vector to check correctness
#In order to avoid writing down the complete resulting vector
#Using rounded version in order to avoid writing down all decimals
x <- tsAirgap
x[1:5] <- NA
expect_that( round(mean(na.kalman( x, model="auto.arima", smooth = T )), digits = 4), is_identical_to(285.0746) )
expect_that( round(mean(na.kalman( x, model="auto.arima", smooth = F )), digits = 4), is_identical_to(291.2712) )
expect_that( round(mean(na.kalman( x, model="StructTS", smooth = T )), digits = 4), is_identical_to(280.3522) )
expect_that( round(mean(na.kalman( x, model="StructTS", smooth = F )), digits = 4), is_identical_to(280.4274) )
})
我认为,它必须与使用的双重类型有关...可能在某处我必须添加一个演员......
接下来的问题当然是我无法在solaris上测试...