R包开发:如何使用变量保存某些状态? 最小情景
假设一个包需要监控它自己的使用情况。例如,自加载包后调用包的特定函数的次数 实现这一目标的最佳方式是什么R包开发:如何使用变量保存某些状态? 最小情景,r,scope,package,R,Scope,Package,假设一个包需要监控它自己的使用情况。例如,自加载包后调用包的特定函数的次数 实现这一目标的最佳方式是什么 第一个想法 我试图在.onLoad()函数中创建一个变量: ## R/zzz.R .onLoad <- function(libname, pkgname) { how_many_times <- 0 } 但它也不起作用!当我调用函数count\u me时,第一个定义的全局多少次不会改变,但它是另一个变量,作为修改后的函数内部的闭包。第二个是可以接受的方法,可能是最简单
第一个想法 我试图在
.onLoad()函数中创建一个变量:
## R/zzz.R
.onLoad <- function(libname, pkgname) {
how_many_times <- 0
}
但它也不起作用!当我调用函数count\u me
时,第一个定义的全局多少次不会改变,但它是另一个变量,作为修改后的函数内部的闭包。第二个是可以接受的方法,可能是最简单、最直接的方法。您不需要手动删除它,因为卸载包应该允许R自然地执行垃圾收集(命名空间删除)。
## R/somefile.R
#' @exports
how_many_times <- 0
#' @exports
count_me <- function() {
how_many_times <<- how_many_times + 1
how_many_times
}