如何在R包中找到所有函数?

How to find all functions in an R package?

提问人:jessica 提问时间:12/12/2013 最后编辑:Jaapjessica 更新时间:8/2/2022 访问量:6541

问:

查找包中所有相关功能的最佳方法是什么?我目前正在浏览 caTools 包。如果我这样做,或者我只是要搜索调用该函数,而不是包中的函数。有没有一种简单的方法可以访问 R gui 中的所有功能?有什么好的方法可以搜索函数吗??caTools??caTools

R-常见问题

评论

0赞 Marcin 7/6/2021
没问题,但没有必要删除问题。我可以提供答案,它可以帮助将来遇到与您相同问题的其他人。

答:

40赞 josliber 12/12/2013 #1

您可以使用以下命令获取包中的所有对象:

ls("package:caTools")

您可以使用以下命令获取包中的所有函数签名:

lsf.str("package:caTools")

评论

0赞 lebatsnok 12/12/2013
您可能有一些函数名称以 wit 开头。,因此 ls(xxxx, all=TRUE) 保证列出所有导出的函数。您可以检查未导出的函数的源代码,即不是真正为最终用户准备的,而是在内部包中使用的(但有时仍然有用 - 并被其他人使用)。
3赞 mt1022 4/23/2018
只是一个注释:在列出其对象或功能之前,应先附加包。
1赞 Tripartio 10/1/2022
要仅输出函数名称,可以将 as.character 应用于 lsf.str
25赞 A5C1D2H2I1M1N2O1R2T1 12/12/2013 #2

我猜您只是在寻找,这将打开您的浏览器,进入列出“caTools”包中所有功能的相关帮助页面。help(package = caTools)

您也可以尝试:,但这似乎并不能捕获所有内容。后一种方法的好处是,您可以捕获输出,以防您需要在其他地方引用它:library(help = caTools)

x <- library(help = caTools)
x$info[[2]]
#  [1] "LogitBoost              LogitBoost Classification Algorithm"          
#  [2] "base64encode            Convert R vectors to/from the Base64 format"  
#  [3] "caTools-package         Tools: moving window statistics, GIF, Base64,"
#  [4] "                        ROC AUC, etc."                                
#  [5] "colAUC                  Column-wise Area Under ROC Curve (AUC)"       
#  [6] "combs                   All Combinations of k Elements from Vector v" 
#  [7] "predict.LogitBoost      Prediction Based on LogitBoost Classification"
#  [8] "                        Algorithm"                                    
#  [9] "read.ENVI               Read and Write Binary Data in ENVI Format"    
# [10] "read.gif                Read and Write Images in GIF format"          
# [11] "runmad                  Median Absolute Deviation of Moving Windows"  
# [12] "runmean                 Mean of a Moving Window"                      
# [13] "runmin                  Minimum and Maximum of Moving Windows"        
# [14] "runquantile             Quantile of Moving Window"                    
# [15] "runsd                   Standard Deviation of Moving Windows"         
# [16] "sample.split            Split Data into Test and Train Set"           
# [17] "sumexact                Basic Sum Operations without Round-off Errors"
# [18] "trapz                   Trapezoid Rule Numerical Integration"   
3赞 Tyler Rinker 12/12/2013 #3

包 (CRAN)(开发版本:GitHub)适用于此目的。具体来说,就是功能。pacmanp_funs

语法为:

p_funs(caTools)  # exported
p_funs(caTools, TRUE)  # includes non-exported
32赞 StevieP 7/11/2014 #4

如果您希望所有导出的函数(即可通过 访问的函数),那么就可以了。::getNamespaceExports(pkgName)

如果您想要包中的所有功能,包括可通过 访问的功能,您可以执行 。:::ls(getNamespace(pkgName))

例如,使用以下软件包:stringr

getNamespaceExports("stringr")
[1] "fixed"           "ignore.case"     "invert_match"    "perl"            "str_c"               "str_count"       "str_detect"      "str_dup"         "str_extract"    
[10] "str_extract_all" "str_join"        "str_length"      "str_locate"      "str_locate_all"  "str_match"       "str_match_all"   "str_pad"         "str_replace"    
[19] "str_replace_all" "str_split"       "str_split_fixed" "str_sub"         "str_sub<-"       "str_trim"        "str_wrap"        "word" 

但是,我们知道它存在于包中,正如您所看到的:stringr:::is.perl

setdiff(ls(getNamespace("stringr")), getNamespaceExports("stringr"))
[1] "case.ignored"    "check_pattern"   "check_string"    "compact"         "is.fixed"        "is.perl"         "match_to_matrix" "re_call"         "recyclable"     
[10] "re_mapply"   

因此,我们看到除了函数之外,它还包含所有函数。ls(getNamespace("stringr"))getNamespaceExports("stringr"):::

评论

1赞 Andry 4/11/2020
我喜欢这个答案,因为它不需要安装额外的软件包。只有基地的东西。凉!
0赞 3/23/2022
请注意,这可能会返回更多名称(以点开头)。此外,不完全是 的子集,因为它也从 magrittr 导出。总的来说,两者都很有趣。ls(..., all.names = T)getNamespaceExports("stringr")ls(getNamespace("stringr"))%>%setdiff
1赞 stevec 5/19/2019 #5

另一种方法是使用包collidr

library(collidr)
library(dplyr)

collidr::CRANdf %>% 
  filter(package_names  == "caTools")

#    package_names     function_names
# 1        caTools    caTools-package
# 2        caTools       base64encode
# 3        caTools       base64decode
# 4        caTools             colAUC
# 5        caTools              combs
# 6        caTools         LogitBoost
# 7        caTools predict.LogitBoost
# 8        caTools          read.ENVI
# 9        caTools         write.ENVI
# 10       caTools           read.gif
# 11       caTools          write.gif
# 12       caTools             runmad
# 13       caTools            runmean
# 14       caTools             runmin
# 15       caTools             runmax
# 16       caTools        runquantile
# 17       caTools              runsd
# 18       caTools       sample.split
# 19       caTools          sumexact,
# 20       caTools        cumsumexact
# 21       caTools              trapz

评论

0赞 Anton Antonov 9/27/2021
也许这个链接应该在发布的答案中:“collidr:检查 CRAN 上跨包和函数的命名空间冲突”。
2赞 jxshen 8/2/2022 #6

只是想,如果你只是去环境选项卡->点击全局环境-->点击你想看的包(我在这里选择是为了演示,但在你的情况下,它将是),所有功能、值和数据都会被显示出来。dplyrcaTools

enter image description here

enter image description here