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

Walmes Zeviani walmeszeviani em gmail.com
Quinta Janeiro 17 15:53:17 BRST 2013


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
==========================================================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130117/97990802/attachment.html>


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