onDrawerClosed
失败,并显示以下无用的输出:
R CMD build .
RStudio还提供了无用的输出:
错误:构建目录不包含DESCRIPTION 文件,因此无法将其构建为包。
构建目录:〜/ myPackage
(* 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
文件显然存在)
这是我的DESCRIPTION
文件:
DESCRIPTION
我的包裹结构有什么问题?
答案 0 :(得分:3)
Depends: R
必须具有R版本依赖性:
Depends: R (>= 3.0.0)
(或任何适当的方法)
这在Writing R Extensions中说明:
在没有版本说明或包
base
的情况下声明对R的依赖是没有意义的:这是R包,并且包base
始终可用。
因此,我也可以删除此行(如果我的程序包没有其他依赖项)。
由此,构建立即完成。
虽然事后回顾很清楚,但也许找出问题所在的路径也可以说明(由于此特定错误消息没有给我任何搜索结果):
if(dep $ op!=“> =”)next时出错:参数长度为零
某些情况下看起来确实很像R代码-显然dep$op
(无论是什么)由于某种原因而丢失/未声明。尚不清楚正在执行什么代码/什么函数正在产生此错误。
但是,无论代码是什么,都必须在the R source内部,因此我们可以:
grep
(等)(更灵活,但是如果您还没有完整的R源,则需要下载完整的R源)今天,我很幸运地得到了两个文件中的hit on GitHub for "if (dep$op != ">=") next"
; 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
的{{1}}部分,并且它也希望找到一个版本标签。 DESCRIPTION
是应用于dep$op
端点的op
生成器。