R CMD build。失败:“参数的长度为零”

R CMD build。失败:“参数的长度为零”,r,r-package,R,R Package,R CMD build。在我的程序包上失败,输出以下无效: * checking for file ‘./DESCRIPTION’ ... OK * preparing ‘myPackage’: * checking DESCRIPTION meta-information ... OK * cleaning src * checking for LF line-endings in source and make files and shell scripts * checking for e

R CMD build。在我的程序包上失败,输出以下无效:

* checking for file ‘./DESCRIPTION’ ... OK
* preparing ‘myPackage’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking for LF line-endings in source and make files and shell scripts
* checking for empty or unneeded directories
Error in if (dep$op != ">=") next : argument is of length zero
Execution halted
RStudio还提供了无用的输出:

* checking for file ‘./DESCRIPTION’ ... OK
* preparing ‘myPackage’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking for LF line-endings in source and make files and shell scripts
* checking for empty or unneeded directories
Error in if (dep$op != ">=") next : argument is of length zero
Execution halted
错误:生成目录不包含说明 文件,因此无法作为包生成

生成目录:~/myPackage

描述文件显然存在

这是我的描述文件:

我的软件包结构有什么问题?

更新2020-04-27 从目前的svn版本78311开始,这个问题已经过时了-内部函数工具::。如果未给出>=的话,split_描述现在只会删除R依赖项

这是此错误报告的结果:

与R版本4.0.0及更早版本相关 依赖项:R必须具有R版本依赖项:

Depends: R (>= 3.0.0)
或者任何合适的

这一点载于:

在没有版本规范的情况下声明对R的依赖是没有意义的,也没有对包库的依赖:这是一个R包,包库总是可用的

因此,如果我的包没有其他依赖项,我也可以删除这一行

这样,构建就立即完成了

虽然现在回想起来这一点很清楚,但也许找出问题所在的途径也能说明问题,因为这条特定的错误消息没有给我任何搜索结果:

if dep$op中出错!=>=下一步:参数的长度为零

当然看起来像R代码一样熟悉-很明显,dep$op缺少/由于某种原因未声明的内容。不清楚的是执行了什么代码/是什么函数产生了这个错误

但是,无论它是什么代码,都必须在里面,这样我们就可以:

试试GitHub的存储库内搜索吧,由于web搜索中通常会删除各种分隔符/其他字符,因此消息可能很难匹配 克隆repo并在源代码中更灵活地使用grep等,但如果您还没有完整的R源代码,则需要下载它 今天,我很幸运地在两个文件中获得了a;src/library/tools/R/build.R看起来像在前端

以下是找到该代码段的区域:

ixup_R_dep <- function(pkgname, ver = "2.10")
    {
        desc <- .read_description(file.path(pkgname, "DESCRIPTION"))
        Rdeps <- .split_description(desc)$Rdepends2
        for(dep in Rdeps) {
            if(dep$op != '>=') next
            if(dep$version >= package_version(ver)) return()
        }
这在tools包中,因此帮助器功能可用,例如tools::。read_description

这样,就很容易看出Rdeps正在捕获描述的Depends:R部分,并且它也希望找到一个版本标签;dep$op是应用于依赖项的运算符。

Update 2020-04-27 从目前的svn版本78311开始,这个问题已经过时了-内部函数工具::。如果未给出>=的话,split_描述现在只会删除R依赖项

这是此错误报告的结果:

与R版本4.0.0及更早版本相关 依赖项:R必须具有R版本依赖项:

Depends: R (>= 3.0.0)
或者任何合适的

这一点载于:

在没有版本规范的情况下声明对R的依赖是没有意义的,也没有对包库的依赖:这是一个R包,包库总是可用的

因此,如果我的包没有其他依赖项,我也可以删除这一行

这样,构建就立即完成了

虽然现在回想起来这一点很清楚,但也许找出问题所在的途径也能说明问题,因为这条特定的错误消息没有给我任何搜索结果:

if dep$op中出错!=>=下一步:参数的长度为零

当然看起来像R代码一样熟悉-很明显,dep$op缺少/由于某种原因未声明的内容。不清楚的是执行了什么代码/是什么函数产生了这个错误

但是,无论它是什么代码,都必须在里面,这样我们就可以:

试试GitHub的存储库内搜索吧,由于web搜索中通常会删除各种分隔符/其他字符,因此消息可能很难匹配 克隆repo并在源代码中更灵活地使用grep等,但如果您还没有完整的R源代码,则需要下载它 今天,我很幸运地在两个文件中获得了a;src/library/tools/R/build.R看起来像在前端

以下是找到该代码段的区域:

ixup_R_dep <- function(pkgname, ver = "2.10")
    {
        desc <- .read_description(file.path(pkgname, "DESCRIPTION"))
        Rdeps <- .split_description(desc)$Rdepends2
        for(dep in Rdeps) {
            if(dep$op != '>=') next
            if(dep$version >= package_version(ver)) return()
        }
这在tools包中,因此帮助器功能可用,例如tools::。read_description

这样,就很容易看出Rdeps正在捕获描述的Depends:R部分,并且它也希望找到一个版本标签;dep$op是应用于依赖项的运算符