[英]Including caret in another package gives error during devtools::check() - “there is no package called 'lattice'”
我正在嘗試在我正在開發的 package 中包含插入符號。 當我運行 devtools::check() 時,我收到一個錯誤“沒有名為 'lattice' 的 package”。 如果我從說明文件的“導入”部分中刪除插入符號,錯誤就會消失。 我不確定是什么導致了這個問題。 格子安裝在我的機器上。
我不知道如何提供可重現的示例,因為 package 正在開發中,因此我在此處包含了 package 的版本。 如果有幫助,我的說明文件(沒有插入符號)看起來像這樣
Package: tswgewrapped
Title: Helpful wrappers for 'tswge', 'vars' and 'nnfor' time series packages
Version: 1.8.10
Authors@R: c(
person("David", "Josephs", email = "josephsd@smu.edu", role = c("aut", "cre")),
person("Nikhil", "Gupta", email = "guptan@smu.edu", role = c("aut")))
Description: This package provides several helpful wrappers for the already useful 'tswge', 'vars' and 'nnfor' package. In the future, this package intends to move away from the tswge backend, to be faster, with more readable source code.
License: AGPL-3
Encoding: UTF-8
LazyData: true
Imports:
assertr,
doParallel,
dplyr,
ggfortify,
GGally,
ggplot2,
magrittr,
nnfor,
rlang,
pander,
parallel,
patchwork,
purrr,
R6,
RColorBrewer,
Rfast,
tibble,
tictoc,
tswge,
vars,
forecast
RoxygenNote: 7.1.0
Suggests:
testthat (>= 2.1.0),
tseries,
knitr,
rmarkdown
VignetteBuilder: knitr
這是我的會話信息
> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] tswgewrapped_1.8.10 caret_6.0-84 ggplot2_3.3.0 lattice_0.20-41
loaded via a namespace (and not attached):
[1] colorspace_1.4-1 class_7.3-15 rprojroot_1.3-2 fs_1.3.1 rstudioapi_0.10 roxygen2_7.1.0
[7] remotes_2.1.0 smooth_2.5.5 lubridate_1.7.4 prodlim_2018.04.18 xml2_1.2.0 splines_3.5.1
[13] codetools_0.2-16 doParallel_1.0.14 knitr_1.23 pkgload_1.0.2 greybox_0.5.8 nloptr_1.2.1
[19] compiler_3.5.1 tictoc_1.0 backports_1.1.4 assertthat_0.2.1 RcppZiggurat_0.1.5 Matrix_1.2-17
[25] strucchange_1.5-2 cli_1.1.0 prettyunits_1.0.2 tools_3.5.1 gtable_0.3.0 glue_1.3.1
[31] reshape2_1.4.3 dplyr_0.8.5 Rcpp_1.0.1 fracdiff_1.4-2 xopen_1.0.0 lamW_1.3.0
[37] urca_1.3-0 tswge_1.0.0 nlme_3.1-137 iterators_1.0.10 vars_1.5-3 lmtest_0.9-37
[43] timeDate_3043.102 gower_0.2.1 xfun_0.8 stringr_1.4.0 ps_1.3.0 testthat_2.1.1
[49] devtools_2.1.0 statmod_1.4.33 MASS_7.3-51.4 zoo_1.8-6 scales_1.0.0 ipred_0.9-9
[55] parallel_3.5.1 sandwich_2.5-1 RColorBrewer_1.1-2 yaml_2.2.0 quantmod_0.4-15 curl_3.3
[61] memoise_1.1.0 gridExtra_2.3 pander_0.6.3 rcmdcheck_1.3.3 rpart_4.1-15 reshape_0.8.8
[67] stringi_1.4.3 tseries_0.10-47 desc_1.2.0 foreach_1.4.4 TTR_0.23-4 pkgbuild_1.0.3
[73] lava_1.6.5 rlang_0.4.2 pkgconfig_2.0.2 purrr_0.3.3 nnfor_0.9.6 recipes_0.1.6
[79] patchwork_1.0.0 Rfast_1.9.9 processx_3.4.1 tidyselect_0.2.5 GGally_1.5.0 plyr_1.8.4
[85] magrittr_1.5 R6_2.4.0 generics_0.0.2 pillar_1.4.2 withr_2.1.2 xts_0.11-2
[91] survival_2.44-1.1 nnet_7.3-12 ggfortify_0.4.8 tibble_2.1.3 crayon_1.3.4 usethis_1.5.1
[97] grid_3.5.1 data.table_1.12.2 callr_3.3.1 ModelMetrics_1.2.2 forecast_8.9 digest_0.6.20
[103] MAPA_2.0.4 assertr_2.7 tidyr_0.8.3 numDeriv_2016.8-1.1 tsutils_0.9.2 stats4_3.5.1
[109] RcppParallel_4.4.3 munsell_0.5.0 sessioninfo_1.1.1 quadprog_1.5-7
我終於找到了解決我的問題的方法。
解決方案 1
一年多前,我在我的新計算機上安裝了 R,因此使用的是 3.5.1 版本。 出於某種原因(你可以看到我的我的 SessionInfo),插入符號和格子出現在other attached packages
下,而不是loaded via a namespace (and not attached)
。
我還注意到,如果我將插入符號放在我的 package 命名空間中,那么devtools::check()
的安裝部分雖然沒有任何問題,但是該過程在單元測試部分抱怨格子。
所以我找到的臨時解決方案是在單元測試設置部分(testthat.R)中安裝lattice
和forecast
包。 這似乎不是一個干凈的解決方案,但它確實有效。 您可以在這里看到 - package 的 1.8.10.8 版本。
if(!require("lattice")){
# https://github.com/topepo/caret/issues/411#issuecomment-209973908
install.packages("lattice", repos = "http://cran.us.r-project.org", dependencies = c("Depends", "Imports", "Suggests"))
}
if(!require("forecast")){
# https://github.com/topepo/caret/issues/411#issuecomment-209973908
install.packages("forecast", repos = "http://cran.us.r-project.org", dependencies = c("Depends", "Imports", "Suggests"))
}
解決方案 2
昨天,我升級到最新版本的R(3.6.3)並重新安裝了所有的包。 現在您可以從我的 SessionInfo 中看到caret
和lattice
正確顯示在loaded via a namespace (and not attached)
下方。
現在,即使我從單元測試設置部分刪除lattice
並forecast
package 安裝, devtools::check()
一切正常。 所以我相信舊版本的 R 以及它如何與我的設置交互存在一些問題。
> sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17763)
Matrix products: default
Random number generation:
RNG: Mersenne-Twister
Normal: Inversion
Sample: Rounding
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] tswgewrapped_1.8.10.9
loaded via a namespace (and not attached):
[1] colorspace_1.4-1 ellipsis_0.3.0 class_7.3-15 rprojroot_1.3-2 fs_1.4.1 rstudioapi_0.11
[7] roxygen2_7.1.0 remotes_2.1.1 smooth_2.5.6 prodlim_2019.11.13 fansi_0.4.1 lubridate_1.7.8
[13] xml2_1.3.1 codetools_0.2-16 splines_3.6.3 doParallel_1.0.15 knitr_1.28 pkgload_1.0.2
[19] greybox_0.5.9 nloptr_1.2.2.1 pROC_1.16.2 caret_6.0-86 compiler_3.6.3 tictoc_1.0
[25] backports_1.1.6 assertthat_0.2.1 RcppZiggurat_0.1.5 Matrix_1.2-18 strucchange_1.5-2 cli_2.0.2
[31] prettyunits_1.1.1 tools_3.6.3 gtable_0.3.0 glue_1.4.0 reshape2_1.4.4 dplyr_0.8.5
[37] Rcpp_1.0.4.6 xopen_1.0.0 fracdiff_1.5-1 vctrs_0.2.4 lamW_1.3.0 urca_1.3-0
[43] tswge_1.0.0 nlme_3.1-144 iterators_1.0.12 vars_1.5-3 lmtest_0.9-37 timeDate_3043.102
[49] gower_0.2.1 xfun_0.13 stringr_1.4.0 ps_1.3.2 testthat_2.3.2 lifecycle_0.2.0
[55] devtools_2.3.0 statmod_1.4.34 MASS_7.3-51.5 zoo_1.8-7 scales_1.1.0 ipred_0.9-9
[61] parallel_3.6.3 sandwich_2.5-1 RColorBrewer_1.1-2 quantmod_0.4.17 curl_4.3 memoise_1.1.0
[67] gridExtra_2.3 ggplot2_3.3.0 pander_0.6.3 rcmdcheck_1.3.3 rpart_4.1-15 reshape_0.8.8
[73] stringi_1.4.6 tseries_0.10-47 desc_1.2.0 foreach_1.5.0 TTR_0.23-6 pkgbuild_1.0.6
[79] lava_1.6.7 rlang_0.4.5 pkgconfig_2.0.3 pracma_2.2.9 lattice_0.20-38 purrr_0.3.4
[85] nnfor_0.9.6 recipes_0.1.10 patchwork_1.0.0 Rfast_1.9.9 processx_3.4.2 tidyselect_1.0.0
[91] GGally_1.5.0 plyr_1.8.6 magrittr_1.5 R6_2.4.1 generics_0.0.2 pillar_1.4.3
[97] withr_2.1.2 xts_0.12-0 survival_3.1-8 nnet_7.3-12 ggfortify_0.4.9 tibble_3.0.0
[103] crayon_1.3.4 usethis_1.6.0 grid_3.6.3 data.table_1.12.8 callr_3.4.3 ModelMetrics_1.2.2.2
[109] forecast_8.12 digest_0.6.25 MAPA_2.0.4 assertr_2.7 tidyr_1.0.2 tsutils_0.9.2
[115] RcppParallel_5.0.0 stats4_3.6.3 munsell_0.5.0 sessioninfo_1.1.1 quadprog_1.5-8
我希望這對未來的讀者有所幫助。 吸取的教訓是不要與最新版本的工具和軟件包太不同步。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.