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 に答える