una - ejemplos de programacion en r
¿Cómo se muestra el código fuente de una función S4 en un paquete? (3)
Sé que esta es una vieja pregunta, pero en aras de la exhaustividad para los buscadores futuros, también hay una función llamada
selectMethod
eso varía de getMethod en que puedes usar herencia. Así es como encontré la fuente de una función genérica que tiene múltiples firmas.
Usé los paquetes topGO en R para analizar el enriquecimiento genético con el siguiente código:
sampleGOdata <- new("topGOdata", description = "Simple session", ontology = "BP",
allGenes = geneList, geneSel = topDiffGenes, nodeSize = 10,
annot = annFUN.db, affyLib = affyLib)
resultFisher <- runTest(sampleGOdata, algorithm = "classic", statistic = "fisher")
allRes <- GenTable(sampleGOdata, classicFisher = resultFisher, orderBy = "fisher",
ranksOf = "classicFisher",topNodes = 10)
Quiero ver y cambiar la función RunTest
y la función GenTable
para cambiar la ResultTable
, pero no sé cómo mostrar la función. Con getAnywhere("GenTable")
no obtengo el código que quiero.
getAnywhere("GenTable")
Se encontró un solo objeto que coincide con ''GenTable''
Fue encontrado en los siguientes lugares
package:topGO namespace:topGO
con valor
function (object, ...) standardGeneric("GenTable") <environment: 0x16a30c10> attr(,"generic") [1] "GenTable" attr(,"generic")attr(,"package") [1] "topGO" attr(,"package") [1] "topGO" attr(,"group") list() attr(,"valueClass") character(0) attr(,"signature") [1] "object" attr(,"default") `NULL` attr(,"skeleton") function (object, ...) stop("invalid call in method dispatch to /"GenTable/" (no default method)", domain = NA)(object, ...) attr(,"class") [1] "standardGeneric" attr(,"class")attr(,"package") [1] "methods"
¿Cómo puedo hacer esto?
Tenga en cuenta que a partir de R versión 2.11.0
, uno necesita usar findMehtods()
. Aquí hay un extracto del registro de cambios.
getMethods()
ahora está en desuso, con su uso interno reemplazado porfindMethods()
y otros cambios. Crear objetos de la clase"MethodsList"
también está en desuso.
Use getMethod()
y especifique la firma. En tu caso, eso podría ser, por ejemplo:
getMethod("GenTable","topGOdata")
para mostrar el método GenTable para los objetos topGOdata. En este caso, solo hay un método definido para los objetos topGOdata. En caso de que haya métodos con diferentes firmas, showMethods()
te dirá cuáles. En tu caso :
showMethods("GenTable")
# Function: GenTable (package topGO)
# object="topGOdata"
Puede obtener el código para la firma que desea al especificarlo en la función getMethod()
.