【问题标题】:Including caret in another package gives error during devtools::check() - "there is no package called 'lattice'"在另一个包中包含插入符号会在 devtools::check() 期间出现错误 - “没有名为 'lattice' 的包”
【发布时间】:2020-04-03 16:46:34
【问题描述】:

我正在尝试在我正在开发的包中包含插入符号。当我运行 devtools::check() 时,我收到一个错误“没有名为 'lattice' 的包”。如果我从说明文件的“导入”部分删除插入符号,错误就会消失。我不确定是什么导致了这个问题。我的机器上安装了 Lattice。

我不知道如何提供可重现的示例,因为该软件包正在开发中,因此我包含了软件包 here 的一个版本。如果有帮助,我的说明文件(没有插入符号)看起来像这样

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

【问题讨论】:

  • 您是否尝试将 lattice 作为 Import 与插入符号一起添加到您的包中?
  • 是的,我试过了,还是不行。

标签: r r-caret


【解决方案1】:

我终于找到了解决问题的方法。

解决方案 1

一年多前,我在我的新计算机上安装了 R,因此使用的是 3.5.1 版本。出于某种原因(您可以查看我的 SessionInfo),插入符号和格子出现在 other attached packages 下而不是 loaded via a namespace (and not attached) 下。

我还注意到,如果我将插入符号放在我的包命名空间中,那么 devtools::check() 的安装部分虽然没有任何问题,但该过程在单元测试部分抱怨 lattice。

所以我找到的临时解决方案是在单元测试设置部分 (testthat.R) 中安装 latticeforecast 包。这似乎不是一个干净的解决方案,但它确实有效。你可以看到here - version 1.8.10.8 of the package

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 中看到 caretlattice 正确显示在 loaded via a namespace (and not attached) 部分下。

现在,即使我从单元测试设置部分删除了latticeforecast 软件包安装,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      

我希望这对未来的读者有所帮助。 经验教训是不要与最新版本的工具和软件包太不同步

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多