首页 文章

递归R包安装失败

提问于
浏览
0

我'm debugging the reason why installing one'自己的软件包无法安装 Import -ed软件包 .

  • 选择合适的根目录 . 在该目录中启动R会话 .

  • library(devtools) 之后,运行 devtools::create("mypackage") .

将以下行保存在文件 mypackage/R/f.R 中 .

@#' export
f <- function() {
    fruits <- data.frame("fruit"=c("orange", "kiwi"),
                         "color"=c("orange", "green"),
                         "shape"=c("spheroid", "ellipsoid"))
    library(dplyr)
    colors <- select(fruits, fruit, color)
    colors
}
  • mypackage/DESCRIPTION 末尾添加 Imports: dplyr .

  • 运行setwd("mypackage"),然后运行 devtools::build() .

  • 运行 remove.packages("dplyr") (随后以递归方式安装) .

  • 运行 setwd("..") ,然后是 install.packages("./mypackage_0.0.0.9000.tar.gz", repos = NULL, type = "source") .

安装 mypackage 应自动安装Imports行中列出的软件包,但我们会改为

ERROR: dependency 'dplyr' is not available for package 'mypackage'

为什么?

N.B . :我正在使用 roxygen2 和一个正确的 NAMESPACE 文件,但由于这是我自己的包,我有no intention将其提交给CRAN,我认为这些细节无关紧要 . (是吗?)

Update

如果写作

Imports: dplyr

mypackage/DESCRIPTION 中的任何地方都必须足以在安装 mypackage 时触发 dplyr 的递归安装,添加函数的意义或用例是什么

.onLoad <- function(libname, pkgname) {
    install.packages("dplyr")
}

mypackage/R 目录中的某些 .R 文件中?

另一种方法是优选的,更新的还是包含另一种方法?

Update 2

是否有必要写

Imports: dplyr (>= 0.7)

如果没有指定每个包的所需版本,如何保证包安装成功?换句话说,什么是R的Python虚拟环境的等效解决方案?

1 回答

  • 0

    使用 devtools::install("mypackage") ,这对我有用 .

相关问题