<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Nossa cara, um milhão de obrigados. Não tens ideia do quão útil foi a tua ajuda. <div>Acabei de perceber que na criação do meu dv eu estava pecando ao usar apenas o [i] e não o [i,j]. <div>Espero em breve poder retribuir à comunidade. </div><div>Grande abraço,</div><div><br></div><div>Guilherme Heiden</div><div><br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">Date: Mon, 17 Sep 2012 11:26:58 -0300<br>From: rcoster@gmail.com<br>To: r-br@listas.c3sl.ufpr.br<br>Subject: Re: [R-br] Comando for em cadeia<br><br>É que o codigo que mandei simula uma multivar e nao usa a tua... e eu também tinha entendido errado teu problema, aqui vai um que faz o que tu pediu, baseado na tua multivar<div><br></div><div><div><div>n <- ncol(multivar)</div>
<div>dv <- matrix(0,n,n)</div><div>for (i in 1:n) { </div><div> for (j in i:n) {</div><div>   dv[i,j] <- dv[j,i] <- sum((multivar[,i]-multivar[,j])^2)^.5</div><div> }</div><div>}</div></div><br><div class="ecxgmail_quote">
2012/9/17 Guilherme Heiden <span dir="ltr"><<a href="mailto:guilhermeheiden@hotmail.com">guilhermeheiden@hotmail.com</a>></span><br><blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex">



<div><div dir="ltr">
Eaí Rodrigo! Muito obrigado pela parte de aninhar o for(). Me é bastante útil. Se tu pudesse me ajudar em mais um detalhe seria de grande valia..<div class="ecxim"><div><br></div><div>Eu estou trabalhando com a seguinte matriz:</div>
</div><div><p class="ecxMsoNormal"></p><p class="ecxMsoNormal">     [,1] [,2] [,3] [,4] [,5]</p><p class="ecxMsoNormal">[1,]   20    5   11    7   49</p><div class="ecxim"><p class="ecxMsoNormal">[2,]   18    9   10    2   45</p><p class="ecxMsoNormal">
[3,]   11   35   30   15    7</p><p class="ecxMsoNormal">[4,]   10    3    7    4   26</p><p class="ecxMsoNormal"><br></p></div><p class="ecxMsoNormal"><span style="font-size:10pt">Então, no material que eu estou seguindo o sujeito entrega uma matriz quadrada (5x5) com os seguintes valores como resultado:</span></p>
<BR></div><div><div><div class="ecxim"><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">     [,1]    [,2]   [,3]    [,4]    [,5]</span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[1,]   0.0  30.5  22.7  21.8  42.9</span></font></div>
<div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[2,]    -     0.0   8.8   21.3  67.4</span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[3,]    -     -      0.0   12.7  59.7</span></font></div>
<div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[4,]    -     -      -      0.0   64.5</span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[5,]    -     -      -       -      0.0</span></font></div>
<div><br></div></div><div>A função para tal resultado, por exemplo no caso do 30.5 seria: <span style="line-height:17px;color:rgb(42,42,42);font-size:10pt;font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">dv12=((5-20)^2+(9-18)^2+(35-11)^2+(3-10)^2)^(1/2)=30,5</span><span style="font-size:10pt"></span></div>
<div><span style="line-height:17px;color:rgb(42,42,42);font-size:10pt;font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">E assim sucessivamente.</span></div><div><span style="line-height:17px;color:rgb(42,42,42);font-size:10pt;font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif"><br>
</span></div>O comando que tu me fizesse não entrega tal matriz. Ele me entregou uma matriz 4x5, com os seguintes valores:</div><div><br></div><div><div>         [,1]     [,2]     [,3]     [,4]</div><div>[1,] 0.000000 1.403864 1.814820 2.088134</div>
<div>[2,] 1.403864 0.000000 2.599762 1.771693</div><div>[3,] 1.814820 2.599762 0.000000 3.112440</div><div>[4,] 2.088134 1.771693 3.112440 0.000000</div></div><div><br></div><div>Tu saberia/poderia me dizer porque? Ou me dizer pelo menos quais alterações precisam ser feitas no código que tu me mandasse para eu obter aqueles valores de distância e uma matriz 5x5? Desculpa se estou parecendo preguiçoso, mas realmente ainda não saquei tudo do R e não pude visualizar o erro, mas a tua ajuda já me deu outra visão. </div>
<div><br></div><div>Grande abraço!</div><div><div><div></div><hr>Date: Mon, 17 Sep 2012 10:57:38 -0300<br>From: <a href="mailto:rcoster@gmail.com">rcoster@gmail.com</a><div><div class="h5"><br>To: <a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a><br>
Subject: Re: [R-br] Comando for em cadeia<br><br>Pelo que eu entendi do teu código, aninhando 3 for () tu consegue o que tu quer:<div><br></div><div><div>n <- 4</div><div>dv <- matrix(0,n,n)</div><div>multivar <- matrix(rnorm(1000),ncol=4)</div>
<div>vector <- rep(0,4)</div>
<div>for (i in 1:n) { </div><div> for (j in i:n) {</div><div>  for (k in 1:n) {</div><div>   vector[k] <- (multivar[k,i]-multivar[k,j])^2</div><div>  }</div><div>  dv[i,j] <- dv[j,i] <- sqrt(sum(vector))</div><div>

 }</div><div>}</div><div><br></div>Da pra criar em variaveis separadas (dv11, dv12, dv13...) usando o assign(), mas acho que em matriz é mais util pra ti.</div><div><br></div><div><br></div><div><br><div>
2012/9/17 Guilherme Heiden <span dir="ltr"><<a href="mailto:guilhermeheiden@hotmail.com">guilhermeheiden@hotmail.com</a>></span><br><blockquote style="border-left:1px #ccc solid;padding-left:1ex">



<div><div dir="ltr">
FH, eu recebi a tua resposta com os caracteres alterados, não consegui entender a tua resposta e ainda não conheço esse comando. Mas o resultado do cálculo é o seguinte:<div><br></div><div><div><div style="line-height:17px;color:rgb(42,42,42);font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">

     [,1]      [,2]      [,3]     [,4]      [,5]</div><div style="line-height:17px;color:rgb(42,42,42);font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">[1,] dv11   dv12   dv13  dv14    dv15</div><div style="line-height:17px;color:rgb(42,42,42);font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">

[2,]   -      dv22   dv23   dv24    dv25</div><div style="line-height:17px;color:rgb(42,42,42);font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">[3,]   -        -       dv33   dv34   dv35</div><div style="line-height:17px;color:rgb(42,42,42);font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">

[4,]   -        -        -       dv44    dv45</div><div style="line-height:17px;color:rgb(42,42,42);font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">[5,]  -        -         -          -       dv55</div><div style="line-height:17px;color:rgb(42,42,42);font-family:'Segoe UI',Tahoma,Verdana,Arial,sans-serif">

<br></div></div><div><div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">     [,1]    [,2]   [,3]    [,4]    [,5]</span></font></div></div><div>
<font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[1,]   0.0  30.5  22.7  21.8  42.9</span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[2,]    -     0.0   8.8   21.3  67.4</span></font></div>

<div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[3,]    -     -      0.0   12.7  59.7</span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[4,]    -     -      -      0.0   64.5</span></font></div>

<div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">[5,]    -     -      -       -      0.0</span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px"><br>

</span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">Mas por exemplo, dv12 é: dv12=((5-20)^2+(9-18)^2+(35-11)^2+(3-10)^2)^(1/2)=30,5</span></font></div>

<div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">Esse comando todo é o primeiro passo para uma matriz euclidiana, em que estou tirando os valores das distâncias das variáveis entre elas. Estou começando a programar para o método do vizinho mais próximo ou encadeamento único. </span></font></div>

<div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px"><br></span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">Desde já, muito obrigado!</span></font></div>

<div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">att,</span></font></div><div><font color="#2a2a2a" face="Segoe UI, Tahoma, Verdana, Arial, sans-serif"><span style="line-height:17px">Guilherme </span></font></div>

</div><br><div><div></div><hr>Date: Mon, 17 Sep 2012 10:07:26 -0300<br>From: <a href="mailto:fernandohtoledo@gmail.com">fernandohtoledo@gmail.com</a><br>To: <a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a><br>

Subject: Re: [R-br] Comando for em cadeia<br><br>Guilherme,<div><br></div><div>Nada te impede de aninhar laþos for(). O que vocÛ chama de dvv?</div><div><br></div><div>Qual o resultado numÚrico dessa sua implementaþÒo?</div>

<div><br></div><div>att,</div><div>FH<br><br><div>
2012/9/17 Guilherme Heiden <span dir="ltr"><<a href="mailto:guilhermeheiden@hotmail.com">guilhermeheiden@hotmail.com</a>></span><br><blockquote style="border-left:1px #ccc solid;padding-left:1ex">



<div><div dir="ltr">
<div><div dir="ltr">Olß, eu talvez nÒo tenha sido claro no assunto do e-mail, mas na minha concepþÒo o problema Ú este: um comando for dentro de outro.<div><div><br></div><div>Eu estou trabalhando com a seguinte matriz:</div>


<div><br></div></div><div><div>á á á[,1] [,2] [,3] [,4] [,5]</div><div>[1,] á 20 á á5 á 11 á á7 á 49</div><div>[2,] á 18 á á9 á 10 á á2 á 45</div><div>[3,] á 11 á 35 á 30 á 15 á á7</div><div>[4,] á 10 á á3 á á7 á á4 á 26</div>

<div>
<br></div></div><div>E a partir desta eu gostaria de gerar outra matriz com a seguinte configuraþÒo:</div><div><br></div><div><div>á á á[,1] á á á[,2] á á [,3] á á[,4] á á[,5]</div><div>[1,] dv11 á dv12 á dv13 ádv14 á ádv15</div>


<div>[2,] á - á á ádv22 á dv23 á dv24 á ádv25</div><div>[3,] á - á á á á- á á á dv33 á dv34 á dv35</div><div>[4,] á - á á á á- á á á á- á á á dv44 á ádv45</div><div>[5,] á- á á á á- á á á á - á á á á - á á á dv55</div><div>


<br></div></div><div><b style="font-size:10pt">Para achar os devidos valores, eu criei a seguinte funþÒo:</b></div><div><span style="font-size:10pt">read.csv2("C:/multivar.csv",header=T)</span></div><div><div>


multivar<-read.csv2("C:/multivar.csv",header=T)<br></div>

áattach(multivar)<br>

á<br>

<b><span style="background:yellow">##Criar DV11</span>:</b><br>

vetor1<-NULL<br>

áfor(i in 1:4) { <br>

ávetor1[i]<-(multivar[i,1]-multivar[i,1])^2<br>

á}<br>

dv11<-(sum(vetor1)^0.5)<br>

rm(vetor1)<div><br>

á<br>

<b><span style="background:yellow">##Criar DV12:</span></b><br>

vetor1<-NULL<br>

for(i in 1:4) { <br>

vetor1[i]<-(multivar[i,1]-multivar[i,2])^2<br>

}<br>

dv12<-(sum(vetor1)^0.5)<br>

rm(vetor1)<br><br><br></div>E assim sucessivamente.á<br><br><br><b>Minha d·vida:á</b><br><b>Hß a possibilidade de criar um comando "for" para os valores de dv serem criados automaticamente, ao invÚs de gerar um de cada vez, manualmente?</b><br>


<b><br></b><br><b><br></b><br></div>                                        </div></div>                                        </div></div><div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br></div>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneþa c¾digo mÝnimo reproduzÝvel.<br></blockquote></div><br></div>
<br>_______________________________________________
R-br mailing list
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forne�a c�digo m�nimo reproduz�vel.</div></div>                                           </div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>
<br>_______________________________________________
R-br mailing list
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forne�a c�digo m�nimo reproduz�vel.</div></div></div></div></div>                                       </div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>
<br>_______________________________________________
R-br mailing list
R-br@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.</div></div></div>                                      </div></body>
</html>