比方說,我打開R文件時,我使用了回來的方式。在頁面頂部,我看到一個加載的庫,但我不記得它有什麼功能。所以我想我自己:嗯,我想知道這個長文件庫在哪裏使用了這個庫?使用包搜索R文件
有沒有辦法列出在特定文件中使用給定包中的函數?
比方說,我打開R文件時,我使用了回來的方式。在頁面頂部,我看到一個加載的庫,但我不記得它有什麼功能。所以我想我自己:嗯,我想知道這個長文件庫在哪裏使用了這個庫?使用包搜索R文件
有沒有辦法列出在特定文件中使用給定包中的函數?
當然,還有其他方法可以做到這一點,但如果你能得到的程序包的功能列表,你可以結合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函數實際上並不在我的腳本中,但字符串「ggplot」在library(ggplot2)
中。因此,在初始掃描文件後,您可能仍需要進行一些額外的挖掘。
嗨,感謝您的答覆。我希望這不是不恰當的地方問:爲什麼pacman不在CRAN上? – user1754606
主要是因爲在上傳之前我還想知道一些我知道的錯誤(這些錯誤不一定很小)。泰勒和我計劃在二月份發佈,但我們都很忙,對pacman的工作已經放慢了。隨着學期即將結束,我希望我們很快能夠在CRAN上獲得它。 – Dason
@ user1754606剛剛向CRAN提交了pacman。應在幾天內提供。 – Dason
對,我可以使用help(package = target)並列出所有的函數,然後逐個CTRL + F。但是,如果功能很多,可能需要很長時間。我希望有一種方法可以自動執行此操作。 [編輯:在這裏我正在迴應現在刪除的評論,但我會留下澄清) – user1754606