[R-br] Ajuda

Gilbert Queiroz gilbert_queiroz em yahoo.com.br
Sexta Dezembro 2 00:09:26 BRST 2011


Obrigado, Lucas,
Foi isto mesmo que fiz.

Abs.



________________________________
 De: Lucas Barbosa <lucasbcr em gmail.com>
Para: r-br em listas.c3sl.ufpr.br 
Enviadas: Quinta-feira, 1 de Dezembro de 2011 19:33
Assunto: Re: [R-br] Ajuda
 

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.
>

_______________________________________________
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/50c0d2ee/attachment.html>


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