ver una studio programacion funciones funcion ejemplos como codigo r packages s4

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 por findMethods() 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() .