您可以编写自己的函数,从 R 文件中提取示例代码。这类似于purl
in knit
package 或Stangle
. 这是您可以执行的操作的示例。该功能效率不高,但我写它只是为了展示这个想法。这应该是一个很好的起点。它还假设您已经获取了 R 文件,或者至少在 R 会话中已经存在记录的函数。
purl.examples <- function(fileName){
ll <- readLines(fileName)
ex.lines <- grep('@examples',ll) ## get the example's lines
## for each example loop till
## there is no comment (inefficient)
examples <- lapply(ex.lines , function(x){
i <- x+1
code <- list()
while(grepl("#'",ll[i])){
l <- c(code,gsub("#'","",ll[i],fixed=TRUE))
i <- i+1
}
code
})
}
然后你可以这样称呼它,例如:
lapply(purl.examples('code.R'),
function(ex) eval(parse(text=ex))) ## safer to use evaluate package here