[R-br] Como ver o que uma função faz
Fernando Mayer
fernandomayer em gmail.com
Sábado Setembro 2 20:02:38 -03 2017
Se o pacote for o rms basta baixar o código fonte e abrir a pasta R/
http://cran-r.c3sl.ufpr.br/src/contrib/rms_5.1-1.tar.gz
"May the source be with you"
---
Fernando de Pol Mayer
Laboratório de Estatística e Geoinformação - LEG
Departamento de Estatística - DEST
Universidade Federal do Paraná - UFPR
URL: http://leg.ufpr.br/~fernandomayer
e-mail: fernando.mayer [@] {gmail.com, ufpr.br}
2017-09-01 21:56 GMT-03:00 Cesar Rabak via R-br <r-br em listas.c3sl.ufpr.br>:
> Pedro,
>
> Acho que nesse caso a forma mais prática seria você baixar o código do
> pacote e ver a dita cuja diretamente. . .
>
>
> 2017-09-01 9:38 GMT-03:00 Pedro Emmanuel Alvarenga Americano do Brasil via
> R-br <r-br em listas.c3sl.ufpr.br>:
>
>> library(rms)
>> rms:::Function.cph
>> rms:::Function.rms
>>
>> Pacote errado e é uma função aninhada em outra.
>>
>> Pedro Brasil
>>
>> Em 25 de agosto de 2017 14:53, Tiago Fragoso <fragoso2718 em gmail.com>
>> escreveu:
>>
>>> Olá,
>>>
>>> Essa função não aparece nem pra mim nem pro Marcus quando usamos
>>> methods(), capaz que ela não esteja em versões posteriores do Hmisc.
>>>
>>> O asterisco na saida do methods() indica uma função não exportada. Nesse
>>> caso, Hmisc:::Function.cph deveria achar a função. Note os três ":".
>>>
>>> 2017-08-25 14:10 GMT-03:00 Pedro Emmanuel Alvarenga Americano do Brasil
>>> via R-br <r-br em listas.c3sl.ufpr.br>:
>>>
>>>> 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.
>>>>>>
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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.
>>>>
>>>
>>>
>>
>> _______________________________________________
>> 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.
>>
>
>
> _______________________________________________
> 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/20170902/c47c250f/attachment.html>
Mais detalhes sobre a lista de discussão R-br