R 如何枚举一个包实现的所有S4方法?

R 如何枚举一个包实现的所有S4方法?,r,enumeration,s4,R,Enumeration,S4,我正在寻找一种查询由特定包(通过其命名空间环境提供)实现的所有S4方法的方法。我想我可以列举所有以开头的对象,但我更喜欢使用一种有文档记录的和/或不太老套的方式 > ls(asNamespace("RSQLite"), all.names = TRUE, pattern = "^[.]__T__") [1] ".__T__dbBegin:DBI" ".__T__dbBeginTransaction:RSQLite" [3] ".__T__dbBind:

我正在寻找一种查询由特定包(通过其命名空间环境提供)实现的所有S4方法的方法。我想我可以列举所有以
开头的对象,但我更喜欢使用一种有文档记录的和/或不太老套的方式

> ls(asNamespace("RSQLite"), all.names = TRUE, pattern = "^[.]__T__")
 [1] ".__T__dbBegin:DBI"                 ".__T__dbBeginTransaction:RSQLite" 
 [3] ".__T__dbBind:DBI"                  ".__T__dbClearResult:DBI"          
 [5] ".__T__dbColumnInfo:DBI"            ".__T__dbCommit:DBI"               
 [7] ".__T__dbConnect:DBI"               ".__T__dbDataType:DBI"             
 [9] ".__T__dbDisconnect:DBI"            ".__T__dbExistsTable:DBI"          
[11] ".__T__dbFetch:DBI"                 ".__T__dbGetException:DBI"         
[13] ".__T__dbGetInfo:DBI"               ".__T__dbGetPreparedQuery:RSQLite" 
[15] ".__T__dbGetQuery:DBI"              ".__T__dbGetRowCount:DBI"          
[17] ".__T__dbGetRowsAffected:DBI"       ".__T__dbGetStatement:DBI"         
[19] ".__T__dbHasCompleted:DBI"          ".__T__dbIsValid:DBI"              
[21] ".__T__dbListFields:DBI"            ".__T__dbListResults:DBI"          
[23] ".__T__dbListTables:DBI"            ".__T__dbReadTable:DBI"            
[25] ".__T__dbRemoveTable:DBI"           ".__T__dbRollback:DBI"             
[27] ".__T__dbSendPreparedQuery:RSQLite" ".__T__dbSendQuery:DBI"            
[29] ".__T__dbUnloadDriver:DBI"          ".__T__dbWriteTable:DBI"           
[31] ".__T__fetch:DBI"                   ".__T__isSQLKeyword:DBI"           
[33] ".__T__make.db.names:DBI"           ".__T__show:methods"               
[35] ".__T__sqlData:DBI"                 ".__T__SQLKeywords:DBI"            

我想您需要
showMethods
功能,如:

showMethods(where=asNamespace("RSQLite"))
输出为:

Function: dbBegin (package DBI)
conn="SQLiteConnection"

Function: dbBeginTransaction (package RSQLite)
conn="ANY"

Function: dbClearResult (package DBI)
res="SQLiteConnection"
res="SQLiteResult"

Function: dbColumnInfo (package DBI)
res="SQLiteResult"

这种情况还会持续很多行<代码>?showMethods将有一些额外的参数用于裁剪结果。

我认为showMethods是方法中唯一可用的东西,但它实际上并不将函数作为对象返回,只是将它们打印到屏幕上

下面将返回在环境中定义的方法列表。改编自
covr::replacements\u S4()
,用于修改包中的所有方法以跟踪覆盖率

S4_方法dbiDataType(obj)
#> }
#> 
#>属性(,“目标”)
#>“签名”类的对象
#>dbObj
#>“DBIObject”
#>属性(,“已定义”)
#>“签名”类的对象
#>dbObj
#>“DBIObject”
#>属性(,“通用”)
#>[1]“dbDataType”
#>属性(,“通用”)属性(,“包”)
#>[1]“DBI”
#>属性(,“类”)
#>[1]“方法定义”
#>属性(,“类”)属性(,“包”)
#>[1]“方法”
#> 
#> 
#> [[2]]
#>[[2]]$character
#>函数(drvName,…){
#>findDriver(drvName)(…)
#>   }
#> 
#>属性(,“目标”)
#>“签名”类的对象
#>drvName
#>“角色”
#>属性(,“已定义”)
#>“签名”类的对象
#>drvName
#>“角色”
#>属性(,“通用”)
#>[1]“数据库驱动程序”
#>属性(,“通用”)属性(,“包”)
#>[1]“DBI”
#>属性(,“类”)
#>[1]“方法定义”
#>属性(,“类”)属性(,“包”)
#>[1]“方法”
#> 
#> 
#> [[3]]
#>[[3]]$`DBIConnection#字符`
#>函数(连接、语句等){
#>rs on.exit(dbClearResult(rs))
#>dbGetRowsAffected(rs)
#>   }
#> 
#>属性(,“目标”)
#>“签名”类的对象
#>conn声明
#>DBIConnection“”字符
#>属性(,“已定义”)
#>“签名”类的对象
#>conn声明
#>DBIConnection“”字符
#>属性(,“通用”)
#>[1]“dbExecute”
#>属性(,“通用”)属性(,“包”)
#>[1]“DBI”
#>属性(,“类”)
#>[1]“方法定义”
#>属性(,“类”)属性(,“包”)
#>[1]“方法”