1

我使用这个foreach包来并行化一些东西,我厌倦了.export每次需要使用它时都指示 5 个函数。

我知道我可以做到foreach(...,.export=ls(.GlobalEnv)),但这会将大量数据传输给工作人员并减慢我的速度(可以定义大表)。

所以问题是我怎样才能只列出.GlobalEnv

我这样做了:

getAllFunctions <- function(envir=.GlobalEnv){
        allClasses <- sapply(grep(x=ls(envir), pattern='^%', value=TRUE, invert=TRUE), FUN=function(x){class(eval(parse(text=x)))})
        fnNames <- names(allClasses)[allClasses == 'function']
        return(fnNames)
}

但这很丑陋(并给出了一切),我敢肯定有一种惯用的方式

4

1 回答 1

0

从评论:

as.list(.GlobalEnv)[sapply(.GlobalEnv, is.function)]
于 2016-08-20T08:19:15.537 回答