r语言closure无法读取子集怎么解决

avatar
作者
筋斗云
阅读量:1

在R语言中,closure是一个函数和它的环境的结合体,通常用于创建匿名函数或者在函数中嵌套函数。如果想要在closure中读取父环境的子集,可以使用parent.env()函数来获取父环境,然后再使用subset()函数来获取子集。以下是一个示例:

# 创建一个closure函数 f <- function() {   x <- 1:10   closure <- function() {     parent_env <- parent.env(environment())     subset(parent_env, x > 5)   }   return(closure) }  # 调用closure函数 closure <- f() subset <- closure()  # 打印子集 print(subset) 

在上面的示例中,首先定义了一个父函数f,其中包含一个闭包函数closure。闭包函数closure可以访问父函数f中定义的变量x,并返回x大于5的子集。通过调用f函数获取闭包函数closure,然后再调用closure函数来获取子集并打印出来。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!