提问人:henfiber 提问时间:10/11/2015 更新时间:10/11/2015 访问量:474
提取有关 R 脚本中函数和包使用情况的信息
Extract information on usage of functions and packages in R scripts
问:
在一个或多个 R 脚本中提取函数调用及其出现的行的正确方法是什么?是否有解析基本函数或包允许我执行此操作,或者我应该使用正则表达式构建解决方案?
例如:
function_calls("project1/exploratory_analysis.R")
应该输出一个数据帧,如:
## function line filename
## 1 tapply 35 exploratory_analysis.R
## 2 qplot 80 exploratory_analysis.R
最后,我想要实现的是构建一个或多个 R 脚本中使用的函数调用和加载包的反向索引,用于教育和参考目的。 (例如,用作带有使用示例的存储库)。例如:
--------------------------------------------------------
| function | source_file | line | package |
|:--------:|:----------------------:|:-----:|:--------:|
| tapply | exploratory_analysis.R | 35 | base |
| qplot | exploratory_analysis.R | 80 | ggplot2 |
| cor | regression.R | 15 | stats |
| cor | regression.R | 27 | stats |
| tapply | regression.R | 12 | base |
| fromJSON | load_dataset.R | 5 | jsonlite |
| %>% | transformation.R | 10 | magrittr |
--------------------------------------------------------
可以使用一些正则表达式来提取函数调用,但我想知道是否存在支持此任务的解析、静态代码分析或反射工具。
我想组合 、 、 、 (或者可能是包中的函数 )会使它成为可能,但我对它们的用法不够熟悉,无法自己弄清楚。parse()
substitute()
getParseData()
deParse()
srcfile()
mvbutils
codetools
答: 暂无答案
评论
<-
if
*
%>%
magrittr
dplyr
getParseData(parse("some_script.R"))
data.frame
subset(getParseData(parse("some_script.R")), token == "SYMBOL_FUNCTION_CALL")
token == "SPECIAL"
%in%
%>%