错误:需要“NAMESPACE”文件

时间:2013-06-19 16:15:05

标签: r namespaces r-faq

我正在尝试使用

在Linux机器上安装一些R软件包
R CMD INSTALL -l <ourRlibrarylocation> <path where I saved the packagename.tar.gz file>

我看到一条错误消息:

ERROR: a 'NAMESPACE' file is required

我正在使用R 3.0.1。请帮助,我是R的新手,刚刚为客户下载了这些软件包。

一个例子:

 R CMD INSTALL -l /abcde/R/R-3.0.0/library /home/RFILES/PKG/UScensus2000tract_0.03.tar.gz
* installing *source* package âUScensus2000tractâ ...
ERROR: a 'NAMESPACE' file is required
* removing â/abcde/R/R-3.0.0/library/UScensus2000tractâ

4 个答案:

答案 0 :(得分:38)

According to the R documentation for writing extensions,所有发往3.0.0及更高版本的软件包都必须包含NAMESPACE文件。如果您下载的R软件包会出现上述错误,那么您应该尝试以下操作:

解开包裹:

tar -xvf the_package.tar.gz

添加NAMESPACEexportPattern( "." )

cd the_package
echo 'exportPattern( "." )' > NAMESPACE
cd ..

重新打开包裹:

tar -zcf the_package.tar.gz the_package

尝试重新安装。

希望有所帮助。

答案 1 :(得分:4)

我实际上在编译R-3.0.1时遇到了同样的问题。它看起来是我使用的包版本已过时。这是针对proto

# /var/local/R-3.0.1/bin/R CMD INSTALL -l /var/local/R-3.0.1/lib64/R/library proto_0.3-9.2.tar.gz
* installing *source* package ‘proto’ ...
ERROR: a 'NAMESPACE' file is required
* removing ‘/var/local/R-3.0.1/lib64/R/library/proto’

但有一个较新版本的proto(0.3-10)工作正常:

# ../var/local/R-3.0.1/bin/R CMD INSTALL -l ../var/local/R-3.0.1/lib64/R/library proto_0.3-10.tar.gz
* installing *source* package ‘proto’ ...
** package ‘proto’ successfully unpacked and MD5 sums checked
** R
** demo
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
   ‘proto.Rnw’
   ‘protoref.Rnw’
** testing if installed package can be loaded
* DONE (proto)

我有一个较旧的R(2.15)安装版本,旧的原型包与之配合使用:

# /var/local/R-2.15.0/bin/R CMD INSTALL -l /var/local/R-2.15.0/lib64/R/library proto_0.3-9.2.tar.gz
* installing *source* package 'proto' ...
** Creating default NAMESPACE file
** R
** demo
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
   'proto.Rnw'
   'protoref.Rnw'
** testing if installed package can be loaded

看起来R的旧版本实际上会创建缺少的NAMESPACE文件,但新版本会失败。希望这能帮到你!

答案 2 :(得分:3)

我发现以下链接更有用: How should I deal with "package 'xxx' is not available (for R version x.y.z)" warning?

  

<强> 6。包裹已过期

     

可能是archived(如果不再维护,不再通过R CMD check次测试)。

     

在这种情况下,您可以使用install_version()

加载旧版本的软件包
library(devtools)
install_github("cran/foobarbaz")
     

另一种方法是从github CRAN镜像安装。

{{1}}

答案 3 :(得分:0)

现在可以使用remotes::install_url()remotes::install_local()

它会安装依赖项并自动生成NAMESPACE文件。