【发布时间】:2014-06-08 20:28:59
【问题描述】:
我是第一次尝试创建一个包,但遇到了 R CMD 检查问题。
最初,我收到“注释”,说我的全局变量没有可见的绑定。一世 在被检查的文件顶部添加了对这些变量的赋值,现在当示例运行时,我收到错误消息,说我无法更改锁定绑定的值。由于我没有锁定绑定,我认为这是 R CMD 检查正在做的事情,但我找不到任何描述这意味着什么或如何修复它的文档。
这是一个具体的例子。我的 R 文件包含这样的函数:
.ddg.init.tables <- function() {
size <- 100
ddg.proc.nodes <<- data.frame(ddg.type = character(size),
ddg.num = numeric(size), ddg.name = character(size),
ddg.value = character(size), stringsAsFactors=FALSE)
}
使用这样定义的函数,我会得到注释:
.ddg.init.tables: no visible binding for '<<-' assignment to 'ddg.proc.nodes'
为了解决这个问题,我在上面添加了 .ddg.init.tables 的定义:
ddg.proc.nodes <- NULL
注释消失了,但后来在检查示例时的 R CMD 检查过程中,同时运行示例中的行:
ddg.init()
我现在得到错误:
> ddg.init()
Error in .ddg.init.tables() :
cannot change value of locked binding for 'ddg.proc.nodes'
Calls: ddg.init -> .ddg.init.tables
Execution halted
如果我省略初始化,我会得到注释,但示例会执行。
“锁定绑定”消息的含义是什么?修复它的最佳方法是什么?
感谢您的帮助。
【问题讨论】:
标签: r