setwd() # altera diretório analise.predacao = function(file1,file2) #criando a função { options(digits=4) # limita número de casas decimais nos outputs presas = read.csv(file = file1, sep=",", head=T) # lê primeiro arquivo de dados de entrada predadores = read.csv(file = file2, sep=",", head=T) # lê segundo arquivo de dados de entrada ######################################################### ##### GERANDO ANÁLISE DESCRITIVA PARA PRESAS E PREDADORES ##### SOMA, MÉDIA, DESVIO-PADRAO, MÁXIMO, MEDIANA, MÍNIMO ######################################################### ########################################## # Presas ########################################## presas.2=presas[c(-1,-2)][presas$predacao==1,] #selecionando apenas colunas com os períodos de tempo onde predacao=1. soma.presas=apply(presas.2, 2, sum) # soma para cada tempo media.presas=apply(presas.2, 2, mean) # média para cada tempo std.presas=sqrt(apply(presas.2, 2, var)) # desvio-padrão para cada tempo min.presas=apply(presas.2, 2, min) # mínimo para cada tempo mediana.presas=apply(presas.2, 2, median) # mediana para cada tempo max.presas=apply(presas.2, 2, max) # máximo para cada tempo analise.presas=t(data.frame(soma.presas,media.presas,std.presas,min.presas,mediana.presas,max.presas)) # junta resultados de presas em um data.frame rownames(analise.presas)=c("Soma","Média","Desvio-Padrão","Mínimo","Mediana","Máximo") print("Análise Descritiva Presas") # exibe o "título" da tabela print(analise.presas) # exibe output no console View(analise.presas) # exibe output em uma janela ########################################## # Predadores ########################################## predadores.2=predadores[c(-1)] #selecionando apenas colunas com os períodos de tempo soma.predadores=apply(predadores.2, 2, sum) # soma para cada tempo media.predadores=apply(predadores.2, 2, mean) # média para cada tempo std.predadores=sqrt(apply(predadores.2, 2, var)) # desvio-padrão para cada tempo min.predadores=apply(predadores.2, 2, min) # mínimo para cada tempo mediana.predadores=apply(predadores.2, 2, median) # mediana para cada tempo max.predadores=apply(predadores.2, 2, max) # máximo para cada tempo analise.pred=t(data.frame(soma.predadores,media.predadores,std.predadores,min.predadores,mediana.predadores,max.predadores)) # junta resultados de predadores em um data.frame rownames(analise.pred)=c("Soma","Média","Desvio-Padrão","Mínimo","Mediana","Máximo") print("Análise Descritiva predadores") # exibe o "título" da tabela print(analise.pred) # exibe output no console View(analise.pred) # exibe output em uma janela ########################################## ### Gráfico 1 evidenciando a soma de predadores e presas observadas em cada período de tempo ########################################## ### argumentos para o "plot" tempo=names(soma.presas) # nomes dos intervalos de tempo ymin=min(soma.presas,soma.predadores) # valor mínimo do eixo "y" do gráfico ymax=max(soma.presas,soma.predadores) # valor máximo do eixo "y" do gráfico x.axis=1:length(soma.presas) # intervalos no eixo "x" #Grafico1 png(filename="presasvspredadores.png") #Salva gráfico no diretório atual plot(x.axis,soma.presas, xlab="Tempo", ylab="Quantidade de Individuos",ylim = c(ymin,ymax), xaxt="n", type='o', col="green", lwd=1.5) # plota gráfico axis(1,at=1:length(tempo), labels=tempo) # nomes dos intervalos no eixo "x" points(1:length(soma.presas),soma.predadores,pch=2, type='o', col="red", lwd=1.5) #adiciona linha de predadores no gráfico legend("topleft", c("Presas","Predadores"),col=c("green","red"), pch=c(1,2),cex = 0.8) # adiciona legenda dev.off() # retira exibição do gráfico #Exibe gráfico no R plot(x.axis,soma.presas, xlab="Tempo", ylab="Quantidade de Individuos",ylim = c(ymin,ymax), xaxt="n", type='o', col="green", lwd=1.5) # plota gráfico axis(1,at=1:length(tempo), labels=tempo) # nomes dos intervalos no eixo "x" points(1:length(soma.presas),soma.predadores,pch=2, type='o', col="red", lwd=1.5) #adiciona linha de predadores no gráfico legend("topleft", c("Presas","Predadores"),col=c("green","red"), pch=c(1,2),cex = 0.8) # adiciona legenda # Criando tabela com consumo de presas presas=presas[with(presas,order(-predacao,generos)),] #ordena tabela em ordem decrescente de "predacao" e depois em ordem alfabética de "generos" presas1=presas[c(-1,-2)][presas$predacao==1,] # seleciona tempos com "predacao"=1 presas0=presas[c(-1,-2)][presas$predacao==0,] # seleciona tempos com "predacao"=0 diferenca=presas0-presas1 # faz a diferença das quantidades de presas em cada tempo obtendo o consumo das presas generos=presas[presas$predacao==1,1] # seleciona apenas generos consumo.presas=data.frame(generos,diferenca$t0,diferenca$t1,diferenca$t2,diferenca$t3,diferenca$t4) # cria data.frame de consumo colnames(consumo.presas)=names(presas[c(-2)]) # nomeia as colunas soma.consumo.presas=data.frame(consumo.presas,rowSums(consumo.presas[c(-1)])) # cria coluna de soma colnames(soma.consumo.presas)=c(names(consumo.presas),"total") # nomeia colunas print("Consumo de Presas") # exibe "título" da tabela de consumo print(soma.consumo.presas) # exibe tabela de consumo View(soma.consumo.presas) # exibe tabela de em uma janela #write.table(consumo.presas,"soma.consumo.presas.csv", sep=",") #print(soma.consumo.presas,row.names = FALSE) #Top 10 generos mais consumidos maiores.consumos=head(soma.consumo.presas[with(soma.consumo.presas,order(-total)),],10) #Top 10 generos menos consumidos menores.consumos=head(soma.consumo.presas[with(soma.consumo.presas,order(total)),],10) ymax=max(soma.consumo.presas$total) # valor máximo eixo "y" #Grafico 2 png(filename="maisconsumidos.png") # salva gráfico dos mais consumidos print("Presas mais consumidas") # "título" gráfico mais consumidos par(las=2) # altera direção dos labels do eixo "x", posição vertical barplot(maiores.consumos$total,names.arg=maiores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos mais consumidos #dev.off() # retira exibição do gráfico dev.new() par(las=2) # altera direção dos labels do eixo "x", posição vertical barplot(maiores.consumos$total,names.arg=maiores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos mais consumidos #Grafico 3 png(filename="menosconsumidas.png") # salva gráfico dos mais consumidos print("Presas menos consumidas") par(las=2) # altera direção dos labels do eixo "x", posição vertical barplot(menores.consumos$total,names.arg=menores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos menos consumidos #dev.off() # retira exibição do gráfico dev.new() par(las=2) # altera direção dos labels do eixo "x", posição vertical barplot(menores.consumos$total,names.arg=menores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos menos consumidos } ###################################################################