função plotmedia
3 participantes
Página 1 de 1
função plotmedia
Olá, bom dia!
Estou voltando nas aulas dadas, para efetivamente utilizar o material nos meus dados. Mas tive problemas com a função "plotmedias.R". Consegui utilizá-la em arquivos do próprio R, mas não nos meus dados. Em compensação, consegui utilizar os meus dados para fazer o gráfico manualmente (usando a função plot e arrows).
Ao tentar com a função plotmédias, aparece o seguinte erro:
Error in plot.window(...) : valores finitos são necessários para 'ylim'
Sendo que ao lado desse aviso, possui duas opções, "Show traceback" e "Rerun with debug". Clicando em Debug, abre uma nova aba com o aviso:
function (xlim, ylim, log = "", asp = NA, ...)
{
.External.graphics(C_plot_window, xlim, ylim, log, asp,
...)
invisible()
}
Pode ser algum problema com os NAs dos dados? Como resolver?
Obrigada!
Estou voltando nas aulas dadas, para efetivamente utilizar o material nos meus dados. Mas tive problemas com a função "plotmedias.R". Consegui utilizá-la em arquivos do próprio R, mas não nos meus dados. Em compensação, consegui utilizar os meus dados para fazer o gráfico manualmente (usando a função plot e arrows).
Ao tentar com a função plotmédias, aparece o seguinte erro:
Error in plot.window(...) : valores finitos são necessários para 'ylim'
Sendo que ao lado desse aviso, possui duas opções, "Show traceback" e "Rerun with debug". Clicando em Debug, abre uma nova aba com o aviso:
function (xlim, ylim, log = "", asp = NA, ...)
{
.External.graphics(C_plot_window, xlim, ylim, log, asp,
...)
invisible()
}
Pode ser algum problema com os NAs dos dados? Como resolver?
Obrigada!
Bia N.- Mensagens : 31
Data de inscrição : 31/03/2020
Re: função plotmedia
Olá Bia
Tive problemas com minha planilha de dados no tapply, devido aos meu nados NA.
Consegui resolver com o argumento (na.rm=T)
No meu caso do tapply fico assim:
tapply(torneio$concentracao, torneio$individuo, mean, na.rm=T)
Veja se resolve.
Tive problemas com minha planilha de dados no tapply, devido aos meu nados NA.
Consegui resolver com o argumento (na.rm=T)
No meu caso do tapply fico assim:
tapply(torneio$concentracao, torneio$individuo, mean, na.rm=T)
Veja se resolve.
Carolina Lorieri- Mensagens : 35
Data de inscrição : 01/04/2020
Re: função plotmedia
Oi, Bia.
Acho que a dica da Carolina é um ótimo começo: se você tiver NAs nos dados, isso pode impedir a plotmedias de funcionar corretamente. Tente a sugestão dela, e depois avise se deu certo, ok?
Acho que a dica da Carolina é um ótimo começo: se você tiver NAs nos dados, isso pode impedir a plotmedias de funcionar corretamente. Tente a sugestão dela, e depois avise se deu certo, ok?
Re: função plotmedia
Oi gente!
Pois é...eu tinha tentado isso... =/ Mas fala que esse argumento não é aceito na função...
Já tentei encaixar "na.rm=T" na função de plotmedias, e até ao abrir a planilha, pra ver se já criava o objeto sem os NAs, mas não rolou...
Mais alguma dica?
Obrigada.
Pois é...eu tinha tentado isso... =/ Mas fala que esse argumento não é aceito na função...
Já tentei encaixar "na.rm=T" na função de plotmedias, e até ao abrir a planilha, pra ver se já criava o objeto sem os NAs, mas não rolou...
Mais alguma dica?
Obrigada.
Bia N.- Mensagens : 31
Data de inscrição : 31/03/2020
Re: função plotmedia
No caso seria usar o argumento no tapply que calcula as médias e medida de desvio. Então você pode editar diretamente o arquivo da função plotmedias e adicionar este argumento na parte correspondente. Na verdade, agora que isso foi levantado, faria sentido ter este argumento lá dentro como padrão!
Re: função plotmedia
Oi Professor!
Quando criei o objeto com as médias e o desvio dos meus dados, já tinha posto o "na.rm=T". Falta acrescentar esse argumento na própria função plotmédias então, é isso? Mas aonde?
Tentei agora adicionar no tapply das médias e desvios dentro da função plotmédias, mas não funcionou. Tentei também como argumento do plot....
Quando criei o objeto com as médias e o desvio dos meus dados, já tinha posto o "na.rm=T". Falta acrescentar esse argumento na própria função plotmédias então, é isso? Mas aonde?
Tentei agora adicionar no tapply das médias e desvios dentro da função plotmédias, mas não funcionou. Tentei também como argumento do plot....
Bia N.- Mensagens : 31
Data de inscrição : 31/03/2020
Re: função plotmedia
Oi de novo, Bia.
De fato, temos que usar o argumento na.rm=T dentro da função plotmédias, na parte em que as médias e desvios são calculados (o argumento é aceito pelo tapply). Ou, alternativamente, você pode remover as linhas dos dados que tem NAs.
Vamos então demonstrar as duas opções, ok?
Opção 1, modificando plotmédias, que vai ficar assim:
Opção 2, removendo os NAs:
De fato, temos que usar o argumento na.rm=T dentro da função plotmédias, na parte em que as médias e desvios são calculados (o argumento é aceito pelo tapply). Ou, alternativamente, você pode remover as linhas dos dados que tem NAs.
Vamos então demonstrar as duas opções, ok?
Opção 1, modificando plotmédias, que vai ficar assim:
- Código:
plotmédias<-function(var.x, var.y, nome.x, nome.y){
médias<-tapply(var.y, var.x, mean, na.rm=T)
desvios<-tapply(var.y, var.x, sd, na.rm=T)
x<-1:nlevels(var.x)
plot(x, médias, ylim=range(c(médias-desvios, médias+desvios)), pch=16,
axes=F, xlab=nome.x, ylab=nome.y)
axis(2, las=1)
axis(1, x, levels(var.x))
box()
arrows(x, médias-desvios, x, médias+desvios, angle=90, code=3, length=0.05)
}
Opção 2, removendo os NAs:
- Código:
#Dados de exemplo:
data("airquality")
summary(airquality)
#Transformando mês em fator, para usarmos no exemplo:
airquality$Month<-as.factor(airquality$Month)
#Como ficou:
summary(airquality)
#Vendo os dados em um boxplot:
boxplot(airquality$Ozone ~ airquality$Month)
#Agora vamos partir para a nossa função:
source("plotmédias.R")
#Mas antes, vamos remover os NAs:
air.2<-na.omit(airquality)
#E agora sim vai dar certo:
plotmédias(air.2$Month, air.2$Ozone, "Mês", "Ozônio")
Re: função plotmedia
Ufa!!! Agora foi!!
Muito obrigada! Vou deixar salva essa nova versão da plotmedias!
Muito obrigada! Vou deixar salva essa nova versão da plotmedias!
Bia N.- Mensagens : 31
Data de inscrição : 31/03/2020
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos