如何使用给定类的方法查找所有函数

时间:2013-04-22 12:41:22

标签: r

我基本上寻找methods(some_function)的反面,它返回该函数存在的所有类方法。是否有一些简单的方法来搜索具有给定对象类的显式method的所有函数?
例如,methods(my_func)会返回一堆myfunc.classname个值。是否有functions(my_class)会使用func.my_class方法返回所有函数吗?

2 个答案:

答案 0 :(得分:7)

我认为您想在class中向generic.function提供参数,而在methods中仅为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

使用this,返回泛型类的方法

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* 

这似乎也适用于S4类,例如

{{1}}

答案 1 :(得分:0)

我认为你正在描述内省和反思的概念(在Java中众所周知)。

关于Java内省和反思的帖子,链接在这里:Java introspection and reflection

我不知道您使用的是哪种技术或语言,但也许您会找到相应的技术或语言。

希望这有帮助!再见!