在包中寻找功能

时间:2013-12-12 04:47:01

标签: r

查找包中所有相关函数的最佳方法是什么?我目前正在通过caTools包。如果我?caTools??caTools我只是想要搜索那些被调用的函数,而不是搜索包中的函数。有没有一种简单的方法来访问R gui中的所有功能?有没有什么好方法可以搜索功能?

5 个答案:

答案 0 :(得分:15)

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

ls("package:caTools")

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

lsf.str("package:caTools")

答案 1 :(得分:11)

我猜您只是在寻找help(package = caTools),它会打开浏览器到相关帮助页面,其中列出了“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"   

答案 2 :(得分:7)

如果你想要所有导出的函数(即可以通过::访问的函数),那么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")包含所有:::

答案 3 :(得分:3)

如果您愿意下载旨在使用包的GitHub包,pacman包适用于此。特别是p_funs函数。

这是回购:

https://github.com/trinker/pacman

语法为:

p_funs(caTools)  # exported
p_funs(caTools, TRUE)  # includes non-exported

答案 4 :(得分:0)

另一种方法是使用collidr软件包

library(collidr)
library(dplyr)
collidr::packages_and_functions_dataframe %>% 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