从R脚本提取函数的更好方法



说我有一个文件" 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()

将为每个功能制作单独的文件。

相关内容

  • 没有找到相关文章

最新更新