2013-04-22 59 views
4

基本上,我在尋找的methods(some_function)相反,它返回存在該函數的所有類方法的方法。是否有一種簡單的方法可以搜索給定對象類具有明確method的所有函數?
例如,methods(my_func)返回一個樁myfunc.classname值。是否有functions(my_class)這將返回所有功能與func.my_class方法?如何找到的所有功能對於給定的

回答

7

我想你想提供一個參數classgeneric.functionmethods沒有什麼。比較

methods(as.matrix) 
[1] as.matrix.data.frame    as.matrix.data.table*    as.matrix.default     
[4] as.matrix.dist*     as.matrix.noquote     as.matrix.POSIXlt     
[7] as.matrix.raster*     as.matrix.SpatialGridDataFrame* as.matrix.SpatialPixelsDataFrame* 

有了這個,它返回方法的泛型類

methods(class="matrix") 
[1] anyDuplicated.matrix as.data.frame.matrix as.data.table.matrix* as.raster.matrix*  boxplot.matrix  corresp.matrix*  
[7] determinant.matrix duplicated.matrix  edit.matrix*   head.matrix   isSymmetric.matrix lda.matrix*   
[13] qda.matrix*   relist.matrix*  subset.matrix   summary.matrix  tail.matrix   unique.matrix   

    Non-visible functions are asterisked 

而這也似乎爲S4類工作爲好,例如

methods(class="data.table") 
[1] $<-.data.table*   [.data.table*    [<-.data.table*   all.equal.data.table*  as.data.frame.data.table* 
[6] as.data.table.data.table* as.list.data.table*  as.matrix.data.table*  dim.data.table*   dimnames.data.table*  
[11] dimnames<-.data.table* duplicated.data.table* format.data.table*  head.data.table*   is.na.data.table*   
[16] merge.data.table*   na.omit.data.table*  names<-.data.table*  Ops.data.table*   print.data.table*   
[21] subset.data.table*  tail.data.table*   transform.data.table*  unique.data.table*  within.data.table* 
+0

謝謝。這樣做的工作。 – 2013-04-22 14:31:05

+1

現在很傷心:一年後,我完全忘記了我會問這個。謝謝SO的搜索工具:-) – 2014-06-04 17:50:21

0

我想您所描述的內省和反思的(在Java中衆所周知的)的概念。

一個帖子關於與鏈接這裏自省和反思的Java:Java introspection and reflection

我不知道你正在使用的技術或語言,但也許你會發現相當。

希望這會有所幫助!再見!

相關問題