在包中寻找功能

jes*_*ica 20 r r-faq

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

jos*_*ber 19

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

ls("package:caTools")
Run Code Online (Sandbox Code Playgroud)

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

lsf.str("package:caTools")
Run Code Online (Sandbox Code Playgroud)

  • 只是一句话:在列出其对象或功能之前,应先附上该包装。 (3认同)

A5C*_*2T1 15

我猜您正在寻找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"   
Run Code Online (Sandbox Code Playgroud)


Ste*_*ieP 9

如果你想要所有导出的函数(即函数可以访问::),那么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" 
Run Code Online (Sandbox Code Playgroud)

但是,我们知道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"   
Run Code Online (Sandbox Code Playgroud)

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