[R-br] erros no codigo do R

Benilton Carvalho beniltoncarvalho em gmail.com
Quarta Março 13 14:18:45 BRT 2013


Ana,

uma dica importante para a lista: siga a recomendacao de prover um
exemplo reproduzivel (o seu nao e' e com isso vc acaba ficando sem
resposta de diversos usuarios da lista). Aqui segue um exemplo:

https://gist.github.com/benilton/1088208

Sobre o primeiro erro ("Error: unexpected symbol in "desvio padrão""),
nunca use nome de variaveis que contenham espaco em branco ou
acentuacao. Use algo como:

desvioPadrao = sd(nome_da_variavel)

Sobre o segundo erro ("Error in quantile(as.numeric(x), c(0.25, 0.75),
na.rm = na.rm, names = FALSE,  :(list) object cannot be coerced to
type 'double' "): preste atencao no seu comando (quantile(dados[,-1],
etc))... "dados" e' um data.frame (uma extensao de uma lista) e o R
nao sabe como aplicar o quantile() neste objeto. Voce precisa fazer
uma coluna por vez:

apply(dados[,-1], 2, quantile, na.rm=TRUE)

Att, benilton

Em 13 de março de 2013 12:35,  <alanarocha em sapo.pt> escreveu:
>  Boa tarde, alguem me pode ajudar a corrigir estes erros?
> DADOS:
>                Clínicas X2008 X2009 X2010 X2011 X2012
> 1         PBarca    82 87 87 87 87
> 2          Braga    84 85 86 89 87
> 3           Fafe    85 87 88 86 94
> 4           Maia    81 86 84 90 95
> 5         VNGaia    88 93 92 93 95
> 6        SMFeira    77 83 81 84 92
>
>
> # Estatística por ano
> porano<-apply(dados[,-1],2,function(x)c(summary(x),0)[1:7])
> desvio padrão<-sd(dados[,-1], na.rm= TRUE)
> Error: unexpected symbol in "desvio padrão"
>  variância<-diag(var(dados[,-1], na.rm= TRUE))
> quantile(dados[,-1],  probs = c(0.25, 0.75, NA)/100)
> ampinterquartil<-Iqr(matrix(as.numeric(dados[,-1], na.rm= TRUE)))
> Error in quantile(as.numeric(x), c(0.25, 0.75), na.rm = na.rm, names =
> FALSE,  :
>   (list) object cannot be coerced to type 'double'
> amplitude<-apply(dados[,-1],2,range, na.rm= TRUE)
> amplitudediff<-c(amplitude[2,] - amplitude[1,])
> rownames(porano) <- c('Minimo','Primeiro
> quartil','Mediana','Média','Terceiro Quartil','Máximo','NAs')
> poranol<-rbind(porano,desvio
> padrão,variância,amplitude,amplitudediff,ampinterquartil)
>>
>> colnames(porano) = 2008:2012
>> poranol
>
>                      X2008     X2009     X2010     X2011     X2012
> Minimo           66.000000 65.000000 62.000000 59.000000 60.000000
> Primeiro quartil 76.000000 84.000000 86.000000 88.250000 91.000000
> Mediana          80.000000 87.000000 89.500000 91.500000 94.000000
> Média            80.270000 86.290000 88.500000 90.500000 91.840000
> Terceiro Quartil 85.000000 89.500000 92.000000 95.000000 96.000000
> Máximo           94.000000 98.000000 98.000000 98.000000 99.000000
> NAs               4.000000  3.000000  3.000000  3.000000  0.000000
> desviopadrão      7.362374  6.254838  6.542402  7.439656  7.879345
> variância        54.204545 25.746212 21.530303 25.130682 12.780303
>                  66.000000 65.000000 62.000000 59.000000 60.000000
>                  94.000000 98.000000 98.000000 98.000000 99.000000
> amplitudediff    28.000000 33.000000 36.000000 39.000000 39.000000
>>
>> porano
>
>                   2008  2009 2010  2011  2012
> Minimo           66.00 65.00 62.0 59.00 60.00
> Primeiro quartil 76.00 84.00 86.0 88.25 91.00
> Mediana          80.00 87.00 89.5 91.50 94.00
> Média            80.27 86.29 88.5 90.50 91.84
> Terceiro Quartil 85.00 89.50 92.0 95.00 96.00
> Máximo           94.00 98.00 98.0 98.00 99.00
> NAs               4.00  3.00  3.0  3.00  0.00
>>
>>
> eu preciso de ter o terceiro quartil menos o primeiro quartil
> e de ter mínimo menos 1,5 vezes terceiro quartil menos o primeiro quartil
> e o máximo mais 1,5 vezes o terceiro quartil menos o primeiro quartil
> ou seja obter a amplitude interquartil e os outliers.
> alguem tem algum exemplo?
> e que no grafico me apareça mínimo 1ºquartil mediana media 3ºquartil máximo
> e as dois tipos de amplitude.
>
>  boxplot(dados[,-1], axes=FALSE) # O parametro axes=FALSE faz com que os
> eixos não sejam desenhados
> title(main= 'indicador eKtv sup 1_2 anual') # Acrescenta o título do gráfico
> title(xlab= 'Ano') # Acrescenta o titulo do eixo X
> title(ylab= 'Percentual') # Acrescenta o titulo do eixo Y
> box() # Desenha a caixa em torno do gráfico
> axis(2) # Coloca o eixo Y (o 2 ali representa o eixo Y) no gráfico
> axis(1, 1:5, 2008:2012) # Coloca no eixo X (representado pelo 1), nos pontos
> 1 a 5, as etiquetas 2008 a 2012.
>
>
> obrigada
> Ana Rocha
> _______________________________________________
> 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.


Mais detalhes sobre a lista de discussão R-br