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