[R-br] construção de um objecto para calcular os outliers
alanarocha em sapo.pt
alanarocha em sapo.pt
Sexta Maio 17 12:29:44 BRT 2013
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
Mais detalhes sobre a lista de discussão R-br