[R-br] Como ver o que uma função faz

Pedro Emmanuel Alvarenga Americano do Brasil emmanuel.brasil em gmail.com
Sexta Agosto 25 14:10:48 -03 2017


Ei Marcus,

No meu caso, eu gostaria de ver a Function.cph, mas ela aparece com um
asterisco que eu não sei o que é. Então...

> Function.cph
Error: object 'Function.cph' not found
> Function.cph*
+

E a função não aparece.

Pedro Brasil

Em 25 de agosto de 2017 13:37, Marcus Nunes <marcus.nunes em gmail.com>
escreveu:

> Use `methods` para encontrar os métodos da função desejada:
>
> > methods(Function)
> [1] Function.areg.boot Function.transcan
> see '?methods' for accessing help and source code
>
> Esta função tem dois métodos associados a ela: Function.areg.boot e
> Function.transcan. Agora é só pedir pra ver o código fonte do método que te
> interessa:
>
> > Function.areg.boot
> function (object, type = c("list", "individual"), ytype = c("transformed",
>     "inverse"), prefix = ".", suffix = "", pos = -1, ...)
> {
>     type <- match.arg(type)
>     ytype <- match.arg(ytype)
>     if (missing(type) && !(missing(prefix) & missing(suffix) &
>         missing(pos)))
>         type <- "individual"
>     fit <- object$fit
>     k <- length(fit)
>     nam <- names(fit)
>     g <- vector("list", k)
>     xtype <- object$xtype
>     typey <- object$ytype
>     catl <- object$cat.levels
>     names(g) <- nam
>     for (i in 1:k) {
>         typ <- if (i == 1)
>             typey
>         else xtype[i - 1]
>         if (typ == "c") {
>             if (i == 1 && ytype == "inverse")
>                 stop("currently does not handle ytype=\\"inverse\\" when y
> is categorical")
>             h <- function(x, trantab) {
>                 if (is.factor(x))
>                   x <- as.character(x)
>                 trantab[x]
>             }
>             w <- fit[[i]]$y
>             names(w) <- catl[[nam[i]]]
>             formals(h) <- list(x = numeric(0), trantab = w)
>         }
>         else {
>             h <- function(x, trantab) {
>                 s <- !is.na(x)
>                 res <- rep(NA, length(x))
>                 res[s] <- approxExtrap(trantab, xout = x[s])$y
>                 res
>             }
>             fiti <- fit[[i]]
>             formals(h) <- list(x = numeric(0), trantab = if (i ==
>                 1 && ytype == "transformed") list(x = fiti[[2]],
>                 y = fiti[[1]]) else fiti)
>         }
>         g[[i]] <- h
>     }
>     if (type == "list")
>         return(g)
>     fun.name <- paste(prefix, nam, suffix, sep = "")
>     for (i in 1:k) assign(fun.name[i], g[[i]], pos = pos)
>     invisible(fun.name)
> }
> <environment: namespace:Hmisc>
>
>
>
>
>
>
> --
> Marcus Nunes
> Professor Adjunto
> Universidade Federal do Rio Grande do Norte
> Centro de Ciências Exatas e da Terra
> Departamento de Estatística
> Laboratório de Estatística Aplicada
> marcus.nunes em ccet.ufrn.br
> http://marcusnunes.me/
>
>
> 2017-08-25 13:21 GMT-03:00 Pedro Emmanuel Alvarenga Americano do Brasil
> via R-br <r-br em listas.c3sl.ufpr.br>:
>
>> Amigos de R,
>>
>> Gostaria de poder ver a sequencia de operações que uma função faz. Na
>> maioria das funções, basta digitar o nome da função no console, por exemplo
>>
>> > trimws
>> function (x, which = c("both", "left", "right"))
>> {
>>     which <- match.arg(which)
>>     mysub <- function(re, x) sub(re, "", x, perl = TRUE)
>>     if (which == "left")
>>         return(mysub("^[ \t\r\n]+", x))
>>     if (which == "right")
>>         return(mysub("[ \t\r\n]+$", x))
>>     mysub("[ \t\r\n]+$", mysub("^[ \t\r\n]+", x))
>> }
>> <bytecode: 0x0000000002fdbd78>
>> <environment: namespace:base>
>>
>> No entanto, algumas funções não seguem essa regra e eu não sei como
>> fazer. Por exemplo
>>
>> library(Hmisc)
>> > Function
>> function (object, ...)
>> UseMethod("Function")
>> <environment: namespace:Hmisc>
>>
>> Alguma dica pra conseguir enxergar as operações dessa função?
>>
>> Abraço forte,
>>
>> Pedro Brasil
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170825/92fd0a6d/attachment.html>


Mais detalhes sobre a lista de discussão R-br