问题构建和安装创建的R包

时间:2018-05-13 23:43:09

标签: r package

我创建了一个R包(尚未在CRAN上)并将其发送给同事(作为.zip文件)。

不幸的是,如果没有R抛出错误,他们无法正确构建/安装它。

收到的错误是:

Error: Command failed (1)
In addition: Warning message:
The following packages are referenced using Rcpp::depends attributes however    are not listed in the Depends, Imports or LinkingTo fields of the package     DESCRIPTION file: RcppProgress 

为了创建包,我在R v.3.4.3中使用了RcppArmadillo.package.skeleton()函数。

我为我工作,但不适合我的同事。

构建/安装的方法是:

build("package name") # creates a .tar.gz file
install("package name")

只需将.tar.gz文件发送给我的同事,只需运行install()就可以了吗?

以下是DESCRIPTION文件:

Package: HACSim
Type: Package
Title: Iterative simulation of species haplotype accumulation curves
Version: 1.0
Date: 2018-04-06
Author: Jarrett Phillips
Maintainer: Jarrett Phillips 
Description: Iterative simulation of species haplotype accumulation curves for assessment of sampling completeness
License: GPL (>= 3)
NeedsCompilation: Yes
Imports: ape (>= 5.0), 
     boot (>= 1.3-20), 
     investr (>= 1.4.0), 
     mgcv (>= 1.8-23), 
     pegas (>= 0.10), 
     Rcpp (>= 0.12.16), 
     scam (>= 1.2-2)
LinkingTo: Rcpp, 
           RcppArmadillo

和NAMESPACE

useDynLib(HACSim, .registration=TRUE)
importFrom(Rcpp, evalCpp)
importFrom(ape, base.freq)
importFrom(ape, read.dna)
importFrom(boot, boot)
importFrom(boot, boot.ci)
importFrom(investr, predFit)
importFrom(MASS, mvrnorm) 
importFrom(mgcv, gam) 
importFrom(mgcv, gam.check)  
importFrom(mgcv, predict.gam)
importFrom(pegas, haplotype)
importFrom(rootSolve, uniroot.all)
importFrom(rootSolve, multiroot)
importFrom(scam, scam)
importFrom(scam, scam.check)
importFrom(scam, predict.scam)
exportPattern("^[[:alpha:]]+")

1 个答案:

答案 0 :(得分:0)

错误是

 The following packages are referenced using Rcpp::depends attributes \ 
 however are not listed in the Depends, Imports or LinkingTo fields of\ 
 the package DESCRIPTION file: RcppProgress
鉴于您现在为DESCRIPTION和NAMESPACE发布的内容,这似乎是合理的。

所以我会这样做:

  1. 使用骨架生成器创建包。像你一样延伸。然后......
  2. 运行R CMD build mypackage然后
  3. 运行R CME check mypackage_1.2.3.tar.gz
  4. 这可以让您清楚了解您的来源是否状态良好。之后,您可以创建一个二进制文件或zip或......您的同事应该能够使用它。

    编辑:你当然应该为RcppProgress加上grep,你可能确实有一个未声明的依赖。