作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题
我正在尝试将非 CRAN 存储库中的函数导入到我的包中。
我知道 R 在 CRAN 中搜索 Imports:
中声明的任何包领域DESCRIPTION
文件。有没有办法,例如,导入 function
来自“notoncran”包,它仅在 Github(或其他一些非 CRAN 地方)上。
不希望的解决方法:
我已经找到了一个不受欢迎的解决方法,其中包括绕过 Imports:
通过将我的函数定义为以下内容来完全字段:
myfun <- function(a,b){
x <- require(notoncran)
if(!x){
print("installing notoncran because you don't have it...")
devtools::install_github('repo/withpackage')
require(notoncran)
}
...
}
require()
或
library()
,将包的所有功能都扔到用户的命名空间中,这绝不是理想的。
最佳答案
一个 super 简单的技巧是在我们的 DESCRIPTION
中添加一个“ Remote ”字段文件指定我们在 Github 上的目标包的 username/package_name 目标。
Remotes:
github::User/PackageNotOnCRAN
Import:
PackageNotOnCRAN
Suggests:
devtools,
testthat
这不仅适用于 github (
github::
) 上的文件,而且适用于 git、bitbucket、本地包等。
关于R 包构建 : How to import a function from a package not on CRAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43773066/
我是一名优秀的程序员,十分优秀!