【发布时间】:2012-11-06 22:12:13
【问题描述】:
假设我有一个文件“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)
}
如果整个函数在一行上,则完全失败。
有没有人知道一种更强大、更不容易出错的方法来做到这一点?
【问题讨论】:
-
这是目标,但如果将函数拆分为单独的文件,创建文档似乎会容易得多。
-
不正确。使用
roxygen创建内联文档。 -
@Andrie,我更喜欢
roxygen2;-)