让我说我打开R文件时我曾经使用过。在页面顶部,我看到一个库已加载,但我不记得它的功能了。所以我想我自己:嗯,我想知道在这个长R文件中这个库使用了什么?
有没有办法列出特定文件中使用给定包中的哪些函数?
答案 0 :(得分:5)
当然还有其他方法可以做到这一点但是如果你能得到一个包的函数列表,你可以将readLines
(将脚本作为字符读入R),grepl
(到检测匹配)和sapply
。我抓住函数的方法是使用pacman包中的p_funs
。 (完全披露:我是作者之一)。
以下是我保存为" test.R"
的示例脚本library(ggplot2)
x <- rnorm(20)
y <- rnorm(20)
qplot(x, y)
summary(x)
这是我检测使用哪些功能的会话
script <- readLines("test.R")
funs <- p_funs(ggplot2)
out <- sapply(funs, function(input){any(grepl(input, x = script))})
funs[out]
#[1] "ggplot" "qplot"
如果您不想安装pacman,可以使用任何其他方法获取包中的功能列表。您可以用
替换它funs <- objects("package:ggplot2")
你基本上会得到相同的答案。
请注意,您可能会获得比文件中实际更多的匹配项 - 请注意,ggplot函数实际上并非在我的脚本中,而是字符串&#34; ggplot&#34;在library(ggplot2)
。因此,在初始扫描文件后,您可能仍需要进行一些额外的挖掘。