====== Marcela Vedolin ======
{{:bie5782:01_curso_atual:alunos:trabalho_final:ma.vedolin:20150413_135907.jpg?200|}}
Graduada em Ciências Biológicas pela Unesp - Bauru.
Mestre em Oceanografia na área de Química.
Atualmente doutoranda na mesma área pelo Instituto Oceanográfico - USP
**Meus exercícios**
[[.:Exercícios]]
[[.:Propostas]]
====== Proposta final: função PPI ======
A função proposta irá produzir uma imagem que irá representar um índice de poluição por pellets de plásticos criado com base na equação proposta por Fernandino et al., 2015: PPI=[n/a]*p Sendo: PPI - Pellet Pollution Index; n - número de pellets encontrados na área; a- área amostrada em m²; p - coeficiente de correlação arbitrariamente determinado como sendo 0,02.
Esta função utilizará ferramentas do pacote: ggplot2.
O objeto de entrada da função deverá conter os dados necessários para o cálculo do PPI (serão vetores numéricos quantitativos denominados com as praias estudadas e o vetor denominado área) a partir do qual será gerada a representação gráfica.
Os resultados serão classificados dentro de um intervalo de valores que representem os índices de poluição de "muito baixo" a "muito alto" com variações de cores em relação ao resultado do índice.
====== Código da função ======
PPI= function(x, rmNA=TRUE, grafico=TRUE) # Cria a função PPI que aceita os argumentos data.frame(x), remoção de NAs (defalt=TRUE) e criação de um gráfico (default=TRUE)
{
library(ggplot2) # Carrega o pacote "ggplot2", considerando que já tenha sido instalado.
if(rmNA==TRUE) # Se "rmNA= TRUE", a função irá retirar os NAs, caso tenha nos dados
{
dados=(na.omit(x)) # Cria novo objeto com NAs omitidos, caso tenha
dif=length(x)-length(dados) # Cria novo objeto com os NAs excluídos, caso tenha
cat("\t", dif," valores NA excluídos\n") # Este argumento retorna a quantidade de NAs que foram excluídos no resultado
}
else # Caso não tenha sido excluído nenhum NAs,
{
dados=x # os dados originais são mantidos
}
if (grafico==TRUE) # Se "grafico=TRUE", a função irá retornar um gráfico com os valores do índice plotados, além de retornar os valores em um objeto da classe vetor dentro do data.frame
{
indice=(x$n/x$area)*0.02 # Cálculo do índice desejado
indice # Resultados dos índices
x$indice=indice #Adicionar os valores obtidos ao data.frame
x$local <- factor(x$local, levels = x$local[order(x$indice)]) # Cria um fator (local), que irá resultar na plotagem em ordem crescente, de acordo com índice calculado
str(x) # Confere a estrutura dos dados (com os novos valores)
x11() # Abre o dispostivo gráfico
resultado= ggplot(data=x, aes(x$local, fill=x$indice)) # Plota os valores referentes aos índices de acordo com cada local. O argumento fill é referente a escolha de qual fator será preechido, o índice, no caso.
resultado= resultado + geom_bar() # Plota o gráfico de barras
resultado= resultado + scale_fill_continuous(low="#FFFFFF", high="#333333", breaks=c(8.0,2.5,1.5,1.0,0.5), labels= c("muito alto","alto", "moderado", "baixo","muito baixo")) # A função scale_fill_continuous permite o degradê de cores (do branco ao cinza escuro) e a edição dos intervalos que variam de 0.5 a 8.0 e título paras as legendas, que representam os níveis de poluição
resultado= resultado + xlab("Locais") + scale_y_discrete(name="") + guides(fill=guide_legend(title="PPI")) # Nomeia os eixos e denomina a legenda
resultado= resultado + theme(axis.text=element_text(size = 12, family= "serif"),
panel.background = element_rect(fill="white"), axis.title = element_text (size =14, family="serif")) # O gráfico terá essas definições pré definidas com a função theme(): tamanho e fonte dos textos e background do gráfico na cor branca
resultado= resultado + coord_flip() # Esta função permite que o gráfico fique na horizontal
ggsave(filename="grafico_ppi.jpg", plot=resultado) #Salva o gráfico no formato jpeg no diretório
dev.off() # Fecha o dispositivo
}
else # Se "gráfico= FALSE", a função irá retornar apenas os valores dos índices calculados e inseridos no data.frame
{
indice=(x$n/x$area)*0.02 # Cálculo do índice desejado
resultado=data.frame(x,indice) # Adicionar os valores obtidos ao data.frame
}
return(resultado) # Retorna resultado
}
##Fim da função
====== Help da função ======
PPI package:unknown R Documentation
Essa função calcula o Pellet Pollution Index, índice que que indica o nível de poluição por pellets de plástico em uma determinada área.
Description:
Essa função calcula o Pellet Pollution Index e retorna um gráfico de barras que indica os níveis de poluição por cores e acrescenta uma nova coluna ao data.frame de dados com os valores dos índice calculados.
Usage:
PPI= function(x, rmNA=TRUE, grafico=TRUE)
Arguments:
x: dados utilizados na forma de data.frame (local, número de pellets e área amostrada)
rmNA=TRUE: retira os NAs dos dados
grafico=TRUE: retorna um gráfico de barras
Details:
Os nomes no objeto de entrada da função (data.frame) devem ser mantidos.
Recomenda-se retirar os valores NAs.
Value:
A função retorna um gráfico de barras com os valores dos índices plotados em função dos locais amostrados, o qual
as cores escuras representam níveis altos de poluição e as mais claras, níveis mais baixos.
Este gráfico será salvo no formato jpg no diretório de trabalho.
A função também retorna um data.frame que integra os dados originais e os calculados pela função.
Warning:
A confecção do gráfico requer a instalação do pacote ggplot2, caso o pacote não esteja instalado a função não rodará.
Author(s):
Marcela Corrêa Vedolin
(ma.vedolin@gmail.com)
References:
Crawley, M. 2007. The R book. John Wiley & Sons Ltd, England.
Fernandino, Gerson, Elliffa, Carla I., Silva, Iracema R., & Bittencourt, Abílio C.S.P.. (2015). How many pellets are too many? The pellet pollution index as a tool to assess beach pollution by plastic resin pellets in Salvador, Bahia, Brazil.
Revista de Gestão Costeira Integrada, 15(3), 325-332.
Examples:
Dados de entrada: objeto da classe data.frame
local= c("Ilha do Cardoso","Guarau","Sonho","Vila SP","Gonzaga","Enseada","Santiago","Massaguacu","Praias Grande","Fazenda") #Locais (praias) amostrados
n=c(40,24,37,43,220,113,57,31,62,11) #número de pellets encontrados
area=rep(0.5, 10) #área amostrada (m2), caso as áreas sejam as mesmas recomenda-se usar a função rep()
x=data.frame(local,n,area) #criar objeto de entrada com a função data.frame()
x #conferir objeto criado
Aplicar função: PPI(x)
====== Arquivo da função ======
{{:bie5782:01_curso_atual:alunos:trabalho_final:ma.vedolin:funcao.r|}}