3

假设我有一个文件“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)
}

如果整个函数在一行上,则完全失败。

有谁知道一种更强大、更不容易出错的方法来做到这一点?

4

1 回答 1

7

获取您的函数,然后键入package.skeleton()

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

于 2012-11-06T22:16:10.250 回答