Dúvida com quando o array tem NA

Galera, estava com um array de tamanho 150 onde tinham matrizes 1x1. Sendo que em alguns tinham NA. Dentro de minha função criei uma variável auxliar para identificar esses NA. Fiz do seguinte modo: aux<-NULL for(t in 1:n){ if(is.na(Y[,,t])==TRUE){ aux[t]<-0 }else{ aux[t]<-1 } } Ao identificar, o aux terá tamanho de 150, de 0 e 1. Feito essa verificação, estou pulando para a parte debaixo que é assim: for(t in 1:n){ if(aux[t]==1){ B<-matrix(Z[,,t],ncol=m) U[,,t]<-Y[,,t]-B%*%At[,,t]-D[,,t] F[,,t]<-B%*%Pt[,,t]%*%t(B)+H[,,t] K<-T[,,t]%*%Pt[,,t]%*%t(B)%*%ginv(F[,,t]) L[,,t]<-T[,,t]-K%*%B At[,,t+1]<-T[,,t]%*%At[,,t]+K%*%U[,,t]+C[,,t] Pt[,,t+1]<-T[,,t]%*%Pt[,,t]%*%t(L[,,t])+R[,,t]%*%Q[,,t]%*%t(R[,,t]) }else{ At[,,t+1]<-T[,,t]%*%At[,,t]+C[,,t] Pt[,,t+1]<-T[,,t]%*%Pt[,,t]%*%t(L[,,t])+R[,,t]%*%Q[,,t]%*%t(R[,,t]) } } return(list(At,Pt)) Só que o R está dando um erro que não estou conseguindo resolver, o erro é esse: Erro em svd(X) : infinite or missing values in 'x' Abraços!

Consegui resolver o problema, pessoal. :) Em 14 de junho de 2012 10:38, Victor Eduardo <victorduca08@gmail.com>escreveu:
Galera, estava com um array de tamanho 150 onde tinham matrizes 1x1. Sendo que em alguns tinham NA. Dentro de minha função criei uma variável auxliar para identificar esses NA. Fiz do seguinte modo:
aux<-NULL for(t in 1:n){ if(is.na(Y[,,t])==TRUE){ aux[t]<-0 }else{ aux[t]<-1 } }
Ao identificar, o aux terá tamanho de 150, de 0 e 1.
Feito essa verificação, estou pulando para a parte debaixo que é assim:
for(t in 1:n){ if(aux[t]==1){
B<-matrix(Z[,,t],ncol=m) U[,,t]<-Y[,,t]-B%*%At[,,t]-D[,,t] F[,,t]<-B%*%Pt[,,t]%*%t(B)+H[,,t] K<-T[,,t]%*%Pt[,,t]%*%t(B)%*%ginv(F[,,t]) L[,,t]<-T[,,t]-K%*%B At[,,t+1]<-T[,,t]%*%At[,,t]+K%*%U[,,t]+C[,,t] Pt[,,t+1]<-T[,,t]%*%Pt[,,t]%*%t(L[,,t])+R[,,t]%*%Q[,,t]%*%t(R[,,t])
}else{ At[,,t+1]<-T[,,t]%*%At[,,t]+C[,,t] Pt[,,t+1]<-T[,,t]%*%Pt[,,t]%*%t(L[,,t])+R[,,t]%*%Q[,,t]%*%t(R[,,t]) } } return(list(At,Pt))
Só que o R está dando um erro que não estou conseguindo resolver, o erro é esse: Erro em svd(X) : infinite or missing values in 'x'
Abraços!
participantes (1)
-
Victor Eduardo