[R-br] Ajuda

Lucas Barbosa lucasbcr em gmail.com
Quinta Dezembro 1 19:33:38 BRST 2011


Gilbert, se vc quer mesmo usar *for* é só fazer atribuições dentro do loop
mesmo.

n<-c(87, 108, 80, 25)
nx
err.m<-matrix(NA, choose(nx,2),1)
indice <- 1
for(i in 1:nx)
  {
     for(j in 2:nx)
       {
       if(i<j){
       err.m[indice]<-sqrt((410.35/(n[i]+0.5))+(410.35/(n[j]+0.5)))
       indice <- indice + 1
              }
       }
  }

Em 1 de dezembro de 2011 09:04, Lucas Petri Damiani
<lucaspd16 em gmail.com>escreveu:

> Para declarar a variável. Se vc tentar rodar o primeiro c(err,
> sqrt((410.35/(n[i]+0.5))+(410.35/(n[j]+0.5)))) sem declarar err como NULL
> (ou como qualquer outra coisa) vai aparecer "Erro: objeto 'err' não
> encontrado".
>
> Abraços,
> Lucas
>
> 2011/12/1 Mauro Sznelwar <sznelwar em uol.com.br>
>
>>  **
>> Estava olhando esta discussão, queria saber por que precisa colocar este
>> NULL no err<-NULL?
>>
>>
>> Você pode tentar assim:
>>
>>  n<-c(87, 108, 80, 25)
>> err.m<-matrix(NA, choose(nx,2),1)
>> err.m
>> nx
>> err <- NULL
>> for(i in 1:nx)
>>   {
>>      for(j in 2:nx)
>>        {
>>        if(i<j){
>>        err<-c(err, sqrt((410.35/(n[i]+0.5))+(410.35/(n[j]+0.5))))
>>               }
>>        }
>>   }
>> err.m <- err
>>
>> Mas existem outras formas para escrever o mesmo código, um pouco mais
>> enxuto:
>>
>>  fun <- function(x,y){sqrt((410.35/(x+0.5))+(410.35/(y+0.5)))}
>> err.m2 <- sapply(n,fun,n)[lower.tri(sapply(n,fun,n))]
>> err.m2
>>
>> Espero ter ajudado.
>> Abraços,
>> Lucas
>>
>> 2011/11/30 Gilbert Queiroz <gilbert_queiroz em yahoo.com.br>
>>
>>>  Pessoal, tenho a seguinte parte de um script que estou desenvolvendo:
>>>
>>> n<-c(87, 108, 80, 25)
>>> err.m<-matrix(NA, choose(nx,2),1)
>>> err.m
>>> nx
>>> for(i in 1:nx)
>>>   {
>>>      for(j in 2:nx)
>>>        {
>>>        if(i<j){
>>>        err<-sqrt((410.35/(n[i]+0.5))+(410.35/(n[j]+0.5)))
>>>        print(err)
>>>               }
>>>        }
>>>   }
>>>
>>> Informações úteis:
>>> nx = 4 (já foi definido em outra parte do script)
>>> err.m é uma matriz-coluna (6 x 1)
>>>
>>> O quero fazer é colocar os resultados de err dentro da matriz err.m
>>>
>>> Como faço isso???
>>>
>>> O comando print me mostra que err está calculando o que quero. Mas me
>>> interessa colocar os resultados em err.m
>>>
>>> Abs.
>>>
>>>
>> _______________________________________________
>> R-br mailing list
>> R-br em 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.
>>
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111201/2f59758b/attachment.html>


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