Júnior, para ver o código fonte da função lapply, ou se quiser aprofundar-se na apply entre no CRAN baixe o código fonte (extensão .tar.gz) e vá no diretório: /R-2.13.0/src/library/bae/R/. Lá estarão todos arquivos .R das funções do base! Vale lembrar que algumas delas tem partes ou o todo implementadas em outras linguagens, segue o exemplo do lapply:
lapply <- function (X, FUN, ...)
{
FUN <- match.fun(FUN)
## internal code handles all vector types, including expressions
## However, it would be OK to have attributes which is.vector
## disallows.
if(!is.vector(X) || is.object(X)) X <- as.list(X)
.Internal(lapply(X, FUN))
}
rapply <-
function(object, f, classes = "ANY", deflt = NULL,
how = c("unlist", "replace", "list"), ...)
{
if(typeof(object) != "list")
stop("'object' must be a list")
how <- match.arg(how)
res <- .Internal(rapply(object, f, classes, deflt, how))
if(how == "unlist") unlist(res, recursive = TRUE) else res
}
abraço,
FH
Boa noite,
gostaria de entender o funcionamento da função apply, mais precisamente lapply, para loops.
Já conheço a descrição de seu funcionamento:
‘lapply’ returns a list of the same length as ‘X’, each element of which is the result of applying ‘FUN’ to the corresponding element of ‘X’.
Mas o que eu gostaria de saber é como ele funciona em sua essência. Por exemplo, utilizar um lapply ao invés de um loop "for" é mais rápido.
Eu gostaria de saber o porque, ou seja, como o lapply é implementado.
Não sei se fui claro, mas gostaria de encontrar a implementação da função lapply, o que não encontrei no diretório do pacote "base".
Se alguém puder ajudar.
Também peço desculpas por não ter dado grandes contribuições para a lista, mas creio ter mais experiência em programação (lógica) de fato, do que no ambiente R.
Obrigado.
--
Carlos Roberto Beleti JuniorMestrado em Ciência da ComputaçãoDepartamento de InformáticaUniversidade Estadual de Maringá
_______________________________________________
R-br mailing list
R-br@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.