使用包搜索R文件

use*_*606 4 r

假设我打开R文件,这是我以前用过的方式.在页面顶部,我看到一个库已加载,但我不记得它的功能了.所以我想我自己:嗯,我想知道在这个长R文件中这个库使用的是什么?

有没有办法列出特定文件中使用给定包中的哪些函数?

Das*_*son 5

当然还有其他方法可以做到这一点,但是如果你能得到你可以组合的包的功能列表readLines(将脚本读成R作为字符),grepl(以检测匹配),和sapply.我会抢函数的方法是使用p_funs吃豆子包.(完全披露:我是作者之一).

这是一个我保存为"test.R"的示例脚本

library(ggplot2)

x <- rnorm(20)
y <- rnorm(20)
qplot(x, y)

summary(x)
Run Code Online (Sandbox Code Playgroud)

这是一个会话,我会检测使用哪些功能

script <- readLines("test.R")
funs <- p_funs(ggplot2)
out <- sapply(funs, function(input){any(grepl(input, x = script))})
funs[out]
#[1] "ggplot" "qplot"
Run Code Online (Sandbox Code Playgroud)

如果您不想安装pacman,可以使用任何其他方法获取包中的函数列表.你可以用它替换它

funs <- objects("package:ggplot2")
Run Code Online (Sandbox Code Playgroud)

而你基本上会得到相同的答案.

请注意,您可能会获得比文件中实际更多的匹配项 - 请注意,ggplot函数实际上并不在我的脚本中,而是字符串"ggplot" library(ggplot2).因此,在初始扫描文件后,您可能仍需要进行一些额外的挖掘.