<div dir="ltr">Boa noite,<div><br></div><div>Estou com um problema que eu acho que deve ser super simples mas não estou conseguindo resolver:</div><div><br></div><div><div>> MatrizCorrelação<-array(c(1,0.9,0.7,0.9,1,0.3,0.7,0.3,1),dim=c(3,3))</div><div>> EigenMC<-eigen(MatrizCorrelação)</div><div>> EigenMC$values</div><div>[1]  2.296727793  0.710624647 -0.007352439</div><div>> </div><div>> </div><div>> NovaMatrizCorrelação<-MatrizCorrelação</div><div>> NovoEigenMC<-eigen(NovaMatrizCorrelação)</div><div>> int<-0</div><div>> </div><div>> while(NovoEigenMC$values<0){</div><div>+ </div><div>+   int<-int + 1</div><div>+ </div><div>+ NovoEigenMC.<-ifelse(NovoEigenMC$values<0, 0, NovoEigenMC$values)</div><div>+ </div><div>+ NovaMatrizCorrelação<-NovoEigenMC$vectors %*% diag(NovoEigenMC.) %*% t(NovoEigenMC$vectors)</div><div>+ </div><div>+ NovaMatrizCorrelação<- NovaMatrizCorrelação/sqrt(diag(NovaMatrizCorrelação) %*% t(diag(NovaMatrizCorrelação)))</div><div>+ </div><div>+ eigen(NovaMatrizCorrelação)$values</div><div>+ int</div><div>+ }</div><div>Mensagens de aviso perdidas:</div><div>In while (NovoEigenMC$values < 0) { :</div><div>  a condição tem comprimento > 1 e somente o primeiro elemento será usado</div></div><div><br></div><div>Eu pensei em colocar um for e fazer desta forma:</div><div><div>MatrizCorrelação<-array(c(1,0.9,0.7,0.9,1,0.3,0.7,0.3,1),dim=c(3,3))</div><div>EigenMC<-eigen(MatrizCorrelação)</div><div>EigenMC$values</div><div><br></div><div><br></div><div>NovaMatrizCorrelação<-MatrizCorrelação</div><div>NovoEigenMC<-eigen(NovaMatrizCorrelação)</div><div>int<-0</div><div>for(i in 1:3){</div><div>  </div><div><br></div><div>  while(NovoEigenMC$values[i]<0){</div><div><br></div><div>  int<-int + 1</div><div><br></div><div>NovoEigenMC.<-ifelse(NovoEigenMC$values<0, 0, NovoEigenMC$values)</div><div><br></div><div>NovaMatrizCorrelação<-NovoEigenMC$vectors %*% diag(NovoEigenMC.) %*% t(NovoEigenMC$vectors)</div><div><br></div><div>NovaMatrizCorrelação<- NovaMatrizCorrelação/sqrt(diag(NovaMatrizCorrelação) %*% t(diag(NovaMatrizCorrelação)))</div><div><br></div><div>eigen(NovaMatrizCorrelação)$values</div><div>int</div><div>}</div><div>}</div></div><div><br></div><div>Mas por algum motivo o programa fica rodando rodando e rodando e nada.</div><div><br></div><div>Muito obrigada,</div><div><br></div><div>Michelle</div></div>