2013-12-12 25 views
9

Paketle ilişkili tüm işlevleri bulmanın en iyi yolu nedir? Şu anda caTools paketinden geçiyorum. Eğer ?caTools veya ??caTools yaparsam, paketin içindeki fonksiyonlar değil, aranan işlevler için arama yapacağım. R gui'deki tüm işlevlere erişmenin kolay bir yolu var mı? Fonksiyonları aramak için iyi bir yol var mı?Paket İçinde İşlevler Arayışı

cevap

8

Ben sadece aradığınız olduğunu tahmin ediyorum: Sen ile paketindeki tüm işlev imzalarını alabilirsiniz

ls("package:caTools") 

Tarayıcınızı "caTools" paketindeki tüm işlevleri listeleyen ilgili yardım sayfasına açacak olan help(package = caTools).

Ayrıca şunları da deneyebilirsiniz: library(help = caTools), ancak bu her şeyi yakalamıyor gibi görünüyor. Bu sonuncu yaklaşımının iyi sen onu başka bir yerde başvurmak için ihtiyaç halinde çıkış yakalayabilir ki:

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" 
10

şununla paketindeki tüm nesneleri alabilirsiniz:

lsf.str("package:caTools") 
+0

Zekayla başlayan bazı işlev adlarınız olabilir. Yani, ls (xxxx, all = TRUE), verilen tüm işlevlerin listelendiğini garanti eder. Ve dışa aktarılmayan işlevler için kaynak kodunu inceleyebilirsiniz, yani gerçekten son kullanıcı için değil, bir paket içinde dahili olarak kullanılır (ama bu, bazen başkaları tarafından yararlı ve kullanılır). – lebatsnok

3

Eğer paketleri ile çalışmak üzere tasarlanmış bir GitHub paketini indirmek için istekli iseniz, pacman Paket bunun için iyi çalışıyor. Özellikle p_funs işlevi.

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

süper, çok teşekkürler! –

1

dışa aktarılan tüm fonksiyonları (:: üzerinden erişilebilir yani fonksiyonları) isterseniz, o zaman getNamespaceExports(pkgName) hile olacaktır:

https://github.com/trinker/pacman

sözdizimi: Burada

repo olduğunu.

::: aracılığıyla erişilebilen paketler de dahil olmak üzere, paketteki tüm işlevler için ls(getNamespace(pkgName)) yapabilirsiniz. Örnek olarak

, stringr paketiyle: Ancak

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" 

, biz stringr:::is.perl pakette var olduğunu biliyoruz ve gördüğünüz gibi: Yani

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" 

bunu görmek ls(getNamespace("stringr"))::: işlevlerine ek olarak tüm getNamespaceExports("stringr") öğelerini içerir.

İlgili konular