错误:需要"NAMESPACE"文件

use*_*881 17 namespaces r r-faq

我正在尝试使用Linux机器上安装一些R软件包

R CMD INSTALL -l <ourRlibrarylocation> <path where I saved the packagename.tar.gz file>
Run Code Online (Sandbox Code Playgroud)

我看到一条错误消息:

ERROR: a 'NAMESPACE' file is required
Run Code Online (Sandbox Code Playgroud)

我使用的是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â
Run Code Online (Sandbox Code Playgroud)

pol*_*ise 39

根据R编写扩展的文档,所有发往3.0.0及更高版本的软件包都必须包含一个NAMESPACE文件.如果您下载的R软件包会出现上述错误,那么您应该尝试以下操作:

解开包裹:

tar -xvf the_package.tar.gz
Run Code Online (Sandbox Code Playgroud)

添加NAMESPACE一行文件exportPattern( "." ):

cd the_package
echo 'exportPattern( "." )' > NAMESPACE
cd ..
Run Code Online (Sandbox Code Playgroud)

重新打包包:

tar -zcf the_package.tar.gz the_package
Run Code Online (Sandbox Code Playgroud)

尝试重新安装它.

希望有所帮助.


Chr*_*lan 4

实际上,我在编译 R-3.0.1 时也遇到了同样的问题。看起来我使用的软件包版本已经过时了。这是为了proto

\n\n
# /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\n* installing *source* package \xe2\x80\x98proto\xe2\x80\x99 ...\nERROR: a 'NAMESPACE' file is required\n* removing \xe2\x80\x98/var/local/R-3.0.1/lib64/R/library/proto\xe2\x80\x99\n
Run Code Online (Sandbox Code Playgroud)\n\n

但有一个更新版本的 proto (0.3-10) 工作得很好:

\n\n
# ../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\n* installing *source* package \xe2\x80\x98proto\xe2\x80\x99 ...\n** package \xe2\x80\x98proto\xe2\x80\x99 successfully unpacked and MD5 sums checked\n** R\n** demo\n** inst\n** preparing package for lazy loading\n** help\n*** installing help indices\n** building package indices\n** installing vignettes\n   \xe2\x80\x98proto.Rnw\xe2\x80\x99\n   \xe2\x80\x98protoref.Rnw\xe2\x80\x99\n** testing if installed package can be loaded\n* DONE (proto)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我安装了较旧的 R (2.15),旧的原型包可以使用它:

\n\n
# /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\n* installing *source* package 'proto' ...\n** Creating default NAMESPACE file\n** R\n** demo\n** inst\n** preparing package for lazy loading\n** help\n*** installing help indices\n** building package indices\n** installing vignettes\n   'proto.Rnw'\n   'protoref.Rnw'\n** testing if installed package can be loaded\n
Run Code Online (Sandbox Code Playgroud)\n\n

看起来旧版本的 R 实际上创建了丢失的 NAMESPACE 文件,但新版本则放弃了。希望这对您有帮助!

\n