R 如何枚举一个包实现的所有S4方法?
我正在寻找一种查询由特定包(通过其命名空间环境提供)实现的所有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:
开头的对象,但我更喜欢使用一种有文档记录的和/或不太老套的方式
> 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]“方法”