假设我们有一个列表 ( mylist
) 用作lapply
函数的输入对象。有没有办法知道mylist
正在评估哪个元素?该方法应该适用于lapply
并且snowfall::sfApply
(可能其他人也适用于家庭成员)。
在聊天中,Gavin Simpson 提出了以下方法。这适用lapply
于sfApply
. 我想避免额外的包或摆弄列表。有什么建议么?
mylist <- list(a = 1:10, b = 1:10)
foo <- function(x) {
deparse(substitute(x))
}
bar <- lapply(mylist, FUN = foo)
> bar
$a
[1] "X[[1L]]"
$b
[1] "X[[2L]]"
这是没有削减它的并行版本。
library(snowfall)
sfInit(parallel = TRUE, cpus = 2, type = "SOCK") # I use 2 cores
sfExport("foo", "mylist")
bar.para <- sfLapply(x = mylist, fun = foo)
> bar.para
$a
[1] "X[[1L]]"
$b
[1] "X[[1L]]"
sfStop()