我怎么能只列出函数和那些来自包的函数
How can Iist only functions and those that come from a package
我使用 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)
}
但这很丑陋(并给出了一切),我相信有一种惯用的方式
来自评论:
as.list(.GlobalEnv)[sapply(.GlobalEnv, is.function)]
我使用 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)
}
但这很丑陋(并给出了一切),我相信有一种惯用的方式
来自评论:
as.list(.GlobalEnv)[sapply(.GlobalEnv, is.function)]