[R-br] for dentro de while

Tiago Souza Marçal tiagosouzamarcal em hotmail.com
Sábado Março 28 21:03:21 BRT 2015


Boa noite,
estou com um código que necessita o uso de um for dentro de um while. Entretanto, o uso do for aumentou o tempo de execução.
Gostaria de saber se alguém tem alguma sugestão para contornar este problema???? Acredito que a questão seja organizacional, portanto, não estou enviando um CMR mas caso seja necessário será encaminhado!!!!!!!                               dif <- 1                          tol <- 1e-05                                                                                            i <- 0                          neff <- c(2)	                       while(dif > tol){                                    i <- i + 1                                    LHS <- rBind( cBind(XpX, XpZ), cBind(ZpX, (ZpZ + Ginv)) )                                    invLHS <- solve(LHS)                                    est <- solve(LHS,RHS)                                    b <- est[1:ncol(X.f),]                                    u <- est[(ncol(X.f) + 1):nrow(est),]                                    sig2E <- (ypy - t(b)%*%Xpy - t(u)%*%Zpy)/(N - rankX)                                    sig2U <- numeric(0)                                                                              for(j in 1:length(neff)){                                                 sig2U <- c(sig2U, ( t(est[z[j]:lz[j],])%*%est[z[j]:lz[j],] + sig2E*sum(diag( invLHS[z[j]:lz[j], z[j]:lz[j]] )) )/neff[j])                                                                                                                                            }                                                                        sig2U <- do.call(rBind,lapply(sig2U,as.matrix))                                                                         rel <- as.numeric(sig2E)/sig2U                                         if(!is.null(var)){                                                lamb <- rel                                                ratio <- rep(lamb,neff)                                                newvar <- rBind(sig2U,sig2E)                                                cds <- sig2U/sum(newvar)                                                 dif <- as.numeric(max(abs(newvar - ovar)))                                                                                    }                                         if(is.null(var)){                                                lamb <- rel                                                ratio <- rep(lamb,neff)                                                newvar <- rBind(sig2U,sig2E)                                                cds <- sig2U/sum(newvar)                                                 dif <- as.numeric(max(abs(cds - ocds)))                                                                                                                                    }                                                                          ovar <- newvar                                     ocds <- cds                                     oratio <- ratio                                     olamb <- lamb                                      Ginv <- Diagonal(sum(neff),oratio)                                                                                                                    }Desde já agradeço por qualquer colaboração.
Atenciosamente,
Tiago.

################################################################# Tiago de Souza Marçal - Graduando em Agronomia pelo CCA-UFES Bolsista de Iniciação Científica da área de Genética e Melhoramento de Plantas #################################################################  		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150329/f7da136c/attachment.html>


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