我完全不了解这一点。我试图使用闭包函数读取一个大的xml文件。唯一的问题是,我无法找到在闭包内创建计数器的方法,以便我可以使用计数器作为商店位置的id。我提出了以下代码,这些代码显然存在一些(或可能是严重的)问题。
branchFunction <- function() {
store <- new.env()
func <- function(x, ...) {
new_counter <- function() {
i <- 0
function() {
i <<- i + 1
i
}
}
ns <- getNodeSet(x,path = "//event[@type='left link' or @type='entered link']")
value <- lapply(ns, xmlAttrs)
store[[i]] <- value
}
getStore <- function() { as.list( store ) }
list(event = func, getStore=getStore)
}
myfunctions <- branchFunction()
xmlEventParse(file = "xml.xml", handlers = NULL, branches = myfunctions)
#to see what is inside
l <- myfunctions$getStore()
以下是示例data。
答案 0 :(得分:1)
这就是它,你只想调用函数来实现它,
new_counter <- (function() {
i <- 0
function() {
i <<- i + 1
i
}
})()