
Boa tarde estou a criar objectos para poder fazer o calculo dos outliers mas está a dar tudo NULL, eu queria saber porque.. dados lidos: 2008 2009 2010 2011 2012 1 49 54 57 54 56 2 53 54 55 53 59 3 52 51 52 53 52 4 57 59 59 60 63 5 63 60 63 64 62 6 58 57 59 58 63 estatísticas: #estatísticas descritivas porano<-apply(dados[-c(19,23,36,37),-1],2,function(x)c(summary(x),0)[1:7]) desviopadrao<-apply(dados[-c(19,23,36,37),-1],2,sd,na.rm=TRUE) variancia<-apply(dados[-c(19,23,36,37),-1],2,var,na.rm=TRUE) r<-apply(dados[-c(19,23,36,37),-1],2,range,na.rm=TRUE) diffr<-diff(r) iqr<-apply(dados[-c(19,23,36,37),-1],2,function(x){quantile(x,na.rm=TRUE)[4]-quantile(x,na.rm=TRUE)[2]}) besq<-apply(dados[-c(19,23,36,37),-1],2,function(x){quantile(x, na.rm=TRUE)[2]})-1.5*iqr bdt<-apply(dados[-c(19,23,36,37),-1],2,function(x){quantile(x, na.rm=TRUE)[4]})+1.5*iqr outliers<-list() for(i in names(dados[-c(19,23,36,37),-1])){ tmp<-dados[-c(19,23,36,37),i] outliers[[i]]<-tmp[tmp > bdt[i] | dados[-c(19,23,36,37),i] < besq[i]] } row.names(diffr) <- "Diferen?a do range" # Como o resultado do comando diff ? uma matriz, voc? precisa colocar o nome da linha antes de juntar todos os resultados rownames(porano)<-c("Mínimo","Primeiro Quartil","Mediana","Média","Terceiro Quartil","Máximo","NAs") todos_resultados_dados<-rbind(porano,"Desvio padr?o"=desviopadrao, "Vari?ncia"=variancia, diffr, iqr,besq,bdt,outliers) todos_resultados_dados porano resultado: 2008 2009 2010 2011 2012 Mínimo 48 52 56 55.33 58 Primeiro Quartil 4.708149 4.198439 4.554801 5.255589 4.6888 Mediana 22.16667 17.62689 20.74621 27.62121 21.98485 Média 19 19 19 22 18 Terceiro Quartil 6 5 7 6 7 Máximo 43 44.5 41.5 44 41.5 NAs 67 64.5 69.5 68 69.5 Desvio padr?o Numeric,0 44 Numeric,0 43 Numeric,0 Vari?ncia NULL NULL NULL NULL NULL Diferen?a do range NULL NULL NULL NULL NULL iqr NULL NULL NULL NULL NULL besq NULL NULL NULL NULL NULL bdt NULL NULL NULL NULL NULL outliers NULL NULL NULL NULL NULL porquê NULL? Cumprimentos Ana Rocha