[R-br] Evolução de elementos em grupos

Roney Fraga Souza roneyfraga em gmail.com
Segunda Junho 9 12:43:49 BRT 2014


Pessoal, bom dia!

Estou com um pequeno problema de tempo de processamento e gostaria da opinião de vocês para verificar se é possível diminuí-lo.

A questão que busco solucionar é a mesma descrita na primeira mensagem desse post. Com a ajuda de Éder o problema foi previamente solucionado, contudo, agora estou com uma base de dados maior e o tempo de processamento explodiu.

Segue uma versão pequena dos dados para teste.

Link para download. 
https://dl.dropboxusercontent.com/u/61883020/ver2.RData

Att
Roney


###
### início do código
###

load(‘ver2.RData’)

grupo <-  list()

#
system.time({

for(k in 2:length(a)){	

	grp <- sort(unique(c(ver2[[k-1]]$grupo, ver2[[k]]$grupo))) ### qtde de grupos

		# criando os objetos
		RES <- LAB <- list()

		for (i in grp) {
			
			for (j in grp) {
				
				RES <- append(RES,list(
						       subset(ver2[[k-1]]$name, ver2[[k-1]]$grupo==i) %in% 
						       subset(ver2[[k]]$name, ver2[[k]]$grupo==j)))
				LAB <- append(LAB, paste(i,j, sep='-'))

				grupo[[k]] <- subset(
						     data.frame(
							  label=sapply(LAB, "["), 
							  qtde=sapply(RES, sum)), 
						     qtde>0
						     ) 
				
		}}
		
		grupo[[k]]$tm1.grupo <- as.numeric(gsub('-.*','',grupo[[k]]$label))
		grupo[[k]]$tm1.ano <- min(ver2[[k]]$year)+k-2
		grupo[[k]]$t.grupo <- as.numeric(gsub('^.-','',grupo[[k]]$label))
		grupo[[k]]$t.ano <- min(ver2[[k]]$year)+k-1

}
})

###
### fim do código
###


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