[英]How to return elements of R list as independent objects in function environment?
与此问题类似:
当在函数内部调用list2env
时,我似乎无法调整答案来分配列表元素:
例如
lst <- list(a = c(1, 2), b = c(3, 4))
tmp_fn <- function(lst) {
# do computations on list elements
# first assign each to the function environment
list2env(lst, parent = parent.frame()) # fails
# do stuff
...
}
我以为parent = parent.frame()
可以工作,但是在调试tmp_fn
我只看到lst
被分配给函数环境作为列表,而不是单个变量a
和b
。
1)在这里使用envir=
而不是parent=
。 同样,如图所示,您可能希望添加envir
作为参数以提高灵活性:
lst <- list(a = c(1, 2), b = c(3, 4))
tmp_fn <- function(lst, envir = parent.frame()) {
invisible(list2env(lst, envir = envir))
}
tmp_fn(lst)
2)另一种可能性是使用gsubfn包(开发版本)中的list[...]<-
:
devtools::install_github("ggrothendieck/gsubfn")
library(gsubfn)
func <- function(lst) lst
list[a, b] <- func(lst)
现在a
和b
将处于当前环境中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.