说我有一个文件" myfuncs.r",其中有一些功能:
A <- function(x) x
B <- function(y) y
C <- function(z) z
我想将" myfuncs.r"中包含的所有功能放入自己的文件中,适当地命名。我有一个简单的bash-shell脚本来提取功能并将其放置在单独的文件中:
split -p "function(" myfuncs.R tmpfunc
grep "function(" tmpfunc* | awk '{
# strip first-instances of function assignment
sub("<-", " ")
sub("=", " ")
sub(":", " ") # and colon introduced by grep
mv=$1
mvto=sprintf("func_%s.R",$2)
print "mv", mv, mvto
}' | sh
离开我:
func_A.R
func_B.R
func_C.R
但是,此脚本有明显的局限性。例如,当功能" a"具有嵌套函数时,它将出现不当:
A <- function(x){
Aa <- function(x){x}
return(Aa)
}
,如果整个功能在一行上,则完全失败。
有人知道这样做的更强大,更容易出错的方法吗?
来源您的功能,然后键入 package.skeleton()
将为每个功能制作单独的文件。