在加载R软件包之前,如何确定特定函数属于哪个软件包?

12

例如,我知道许多流行函数,比如 tbl_df()。但我通常不记得它属于哪个包,即 data.table 还是 dplyr。所以我必须时刻记住并加载一个包,否则我无法使用 ?tbl_df,除非我已经加载了正确的包。

在R控制台中,有没有一种方法可以在加载或安装软件包之前知道特定函数属于哪个软件包。

任何帮助都将不胜感激。 谢谢。


2
你使用过 ??tbl_df 吗?这里有一个包列表。 - J_F
4
一种选项是 library(sos);findFn("tbl_df")。该命令可以在R语言中搜索并找到名为“tbl_df”的函数。 - akrun
1
@J_F,那对我不起作用。 - Ronak Shah
@akrun 这很新,我不知道它,但运行需要一些时间。我正在使用Windows机器工作。 - Sowmya S. Manian
你可以尝试使用http://rseek.org进行搜索 - 它比??更快,因为你拥有谷歌服务器的强大支持。 - dww
显示剩余2条评论
3个回答

3

sos软件包可以提供帮助!请尝试:

install.packages("sos")
library(sos)
findFn("str_replace")

也试试这个

lsp <- function(package, all.names = FALSE, pattern) 
{ package <- deparse(substitute(package)) ls( pos = paste("package", package, sep = ":"),
all.names = all.names, pattern = pattern ) }

运行此函数后,如果您想在stringr包中搜索str_replace函数-lsp(stringr,pattern =“* replace”)

也可以试试这个- lsp <- function(package, all.names = FALSE, pattern) { package <- deparse(substitute(package)) ls( pos = paste("package", package, sep = ":"), all.names = all.names, pattern = pattern ) }运行此函数后,如果您想在stringr包中搜索str_replace函数-lsp(stringr, pattern="*replace") - anoopdk
这可能有点令人生畏,因为它仍然是一个大字符串搜索,并且可能会返回许多结果...但是您可以通过单击任何标题(包括按函数名称排序),对生成的HTML表进行排序,然后快速查看这些选项。 - Mike M

2

受@J_F启发,他建议使用??tbl_df:我正在寻找'arima',结果有数十个甚至上百个匹配项。我使用以下方法进行筛选:

(原文未提及具体筛选方法)

最初的回答:

help.search('arima', fields=c('name'), ignore.case=FALSE, agrep=FALSE)

最重要的是,agrep=FALSE会关闭模糊匹配。

0

尝试选中函数,然后点击键盘上的“fn + F1”按钮。

当包已经安装但未加载时,此方法有效,但如果包尚未安装,则无法使用。

这样你就不必再输入任何代码了,非常简单!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接