Предположим, у нас есть список ( mylist
), который используется в качестве объекта ввода для функции lapply
. Есть ли способ узнать, какой элемент в mylist
оценивается? Метод должен работать при прилегающих
и снегопадах: sfApply
(и другие возможные члены семьи) также.
В чате Гэвин Симпсон предложил следующий метод. Это отлично работает для 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()