r - 从 R 脚本中提取函数的更好方法?

标签 r bash function split

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

将为每个函数制作单独的文件。

关于r - 从 R 脚本中提取函数的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260252/

相关文章:

linux - 将日志文件从一种时间格式批量重命名为另一种时间格式

javascript - 内容 Js 函数未链接错误 - "Function Not Defined "

c++ - 带参数的嵌入式系统上的最小 C++ 回调

r - 为什么在尝试将 CRS 分配给 R 中的栅格时出现错误?

r - 尝试使用 [R] 中的函数 rbern 时出错

regex - 用 sed 替换控制字符

linux - 仅在命令失败时重定向标准输出?

javascript - 将数组迭代到自定义网格中

R - 将矩阵存储到单个数据帧单元格中

r - 找不到 gfortran 4.8 来构建包