[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