如何解决从外部安装库,而不仅仅是参考
我想构建一个引用其他软件包的软件包。要创建对另一个软件包的引用,我只需使用我的软件包名称创建一个新的.R文件(假设它是megapackage)。我在下面的文件代码中使用。
#' megapackage
#'
#' @docType package
#' @name megapackage
#' @import ggplot2
#' @import dplyr
#' @import zoo
#' @import gridExtra
#' @import scales
#' @import cowplot
#' @import TTR
NULL
现在,如果我以前没有安装软件包,则会出现问题(我收到错误ERROR: lazy loading failed for package 'megapackage'
)。我的意思是,@import
命令可作为库的引用,但默认情况下不会安装该软件包。我如何以这样的方式进行安装,使其也将安装必要的软件包,而不仅仅是在库中引用它们?
解决方法
我强烈建议阅读Hadley的书 R Packages 。它可以在线免费获得。这是the relevant part:
导入:您的软件包必须存在此处列出的软件包才能 工作。实际上,无论何时安装软件包,这些软件包 如果尚未安装,将安装在您的计算机上 (devtools :: load_all()还会检查软件包是否已安装)。
尝试运行load_all()或在R的全新安装中安装软件包。
,您必须实际安装软件包(而不是构建软件包)。
.R文件中需要有@import dplyr
,在Description文件中需要有Imports: dplyr
。
使用install.packages("filepath",dependencies = T)
安装软件包时,它应该可以工作。
因此,您首先必须安装外部软件包并构建软件包以获取.tar.gz
文件
您现在可以使用此.tar.gz软件包文件来安装软件包(如上所述,带有install.packages)。现在,这还将自动安装外部软件包(如果尚不存在)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。