[R-br] Otimização de código

Leandro Marino leandromarino em leandromarino.com.br
Quinta Janeiro 17 16:51:33 BRST 2013


Valeu caros! Vou testar todas as sugestões.

B, os df's eu já tenho. São umas (muitas) importações! :)


Em 17 de janeiro de 2013 16:41, Benilton Carvalho <
beniltoncarvalho em gmail.com> escreveu:

> se vc criar o seu 'temp' de forma q ele contenha um indice para o
> grupo, conforme abaixo (onde eu apenas forco a barra p criar o
> data.frame do jeito q eu imagino ser melhor, vc pode cria-lo de modo
> bem mais eficaz dentro do seu primeiro for() ):
>
> temp = do.call(rbind, lapply(1:length(temp), function(i) cbind(i,
> temp[[i]])))
>
> enfim, com o 'tempo' como acima, tudo o que vc precisa e':
>
> with(temp, table(i, Tipo))
>
> b
>
> On 17 January 2013 17:53, Walmes Zeviani <walmeszeviani em gmail.com> wrote:
> > Uma coisa que o Benilton sempre faz quando o for() envolve um número
> > conhecido fixo de elementos é criar o objeto do tamanho de etapas do
> for()
> >
> > #temp <- list() # troque por
> > temp <- vector(mode="list", lenght=20)
> > #for(i in 1:20){ # troque por
> > D <- data.frame(matrix(ncol=3,nrow=100))
> > colnames(D) <- c('ID','Tipo','Valor')
> > for(i in 1:length(temp)){
> > #    temp[[i]] <- data.frame(matrix(ncol=3,nrow=100)) # pode ser criada
> fora
> > do laço, D
> > #    colnames(temp[[i]]) <- c('ID','Tipo','Valor')
> >     temp[[i]] <- D
> >     temp[[i]]$ID    <- paste(i,sprintf("%03d",1:100),sep='')
> >     temp[[i]]$Tipo  <- factor(sample(0:10,100,replace=T),levels=c(0:10))
> >     temp[[i]]$Valor <- rnorm(100,100,20)
> > }
> > dado <- data.frame(matrix(ncol=13,nrow=20))
> > colnames(dado) <-
> c('ID',paste('Tipo',sprintf('%02d',0:10),sep=''),'TipoNA')
> > for(i in 1:20){
> > dado[i,] <- c(i,table(temp[[i]]$Tipo,exclude=NULL))
> > }
> >
> > Não explorei tudo que pode ser alterado. Ao mesmo tempo você pode fazer
> isso
> > com a função replicate() também.
> >
> > À disposição.
> >
> >
> ==========================================================================
> > Walmes Marques Zeviani
> > LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759
> W)
> > Departamento de Estatística - Universidade Federal do Paraná
> > fone: (+55) 41 3361 3573
> > VoIP: (3361 3600) 1053 1173
> > e-mail: walmes em ufpr.br
> > skype: walmeszeviani
> > twitter: @walmeszeviani
> > homepage: http://www.leg.ufpr.br/~walmes
> > linux user number: 531218
> >
> ==========================================================================
> >
> > _______________________________________________
> > 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/20130117/747a108b/attachment.html>


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