2013-04-22 21 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

我不知道你正在使用的技术或语言,但也许你会发现相当。

希望这会有所帮助!再见!

相关问题