====== Função Biomassa ====== biomassa <- function(dados, variavel, bioma) #1 Cria a funcao "biomassa" com os argumentos "dados", "variavel" e "bioma" { ## VERIFICANDO AS ENTRADAS if(class(dados) != "data.frame") #3 verificando o tipo do dado da entrada { stop("O dado de entrada tem que ser um data.frame.") #4 caso nao seja um data.frame a funcao retorna a mensagem de erro } na.exclude(dados) #5 exclui os valores de NA em "dados" if (variavel != "1" && variavel != "2" && variavel != "3" && variavel != "4") #6 verificando se o tipo de variavel foi inserido corretamente { stop("as variaveis utilizadas devem ser DBH e/ou p e/ou H, observar o argumento correto no help da funcao") #7 caso nao seja a funcao retorna a mensagem de erro } if(bioma != "amazonia" && bioma != "mata atlantica" && bioma != "cerrado" && bioma != "caatinga") #8 verificando se bioma foi inserido corretamente { stop ("bioma apenas pode ser amazonia, mata atlantica, cerrado ou caatinga.") #9 caso nao seja a funcao retorna a mensagem de erro } ## CRIANDO OS PARAMETRO CONDICIONAIS if (bioma == "mata atlantica") #11 se o bioma dos dados for Mata Atlantica { if(variavel=="1") #12 se dados tiver apenas a variavel DBH { Tiepolo<- 21.297 - (6.953 * DBH) +(0.74 * (DBH)^2) #13 calculo do modelo alometrico de Tiepolo et al. (2002) Burguer<- exp(-6.80067 + 3.77738 * log(DBH)) #14 calculo do modelo alometrico de Burguer (2005) Brown.1<- exp (-1.996 + 2.32 * log(DBH)) #15 calculo do modelo alometrico de Brown (1997) modelos<-data.frame(Tiepolo,Burguer,Brown.1) #16 criando o data frame dos modelos selecionados colnames(modelos)<-c("Tiepolo et al (2002)","Burguer (2005)", "Brown (1997)") #17 colocando o nome dos modelos no data.frame modelos media<-c(mean(Tiepolo),mean(Burguer),mean(Brown.1)) #18 criando um vetor com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Tiepolo),min(Burguer),min(Brown.1)) #19 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Tiepolo),max(Burguer),max(Brown.1)) #20 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Tiepolo),sd(Burguer),sd(Brown.1)) #21 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #22 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Tiepolo et al (2002)","Burguer (2005)", "Brown (1997)") #23 colocando o nome dos modelos no data.frame resultado } if (variavel=="2") #24 se dados tiver as variaveis DBH e p { Tiepolo<- 21.297 - (6.953 * DBH) +(0.74 * (DBH)^2) #25 calculo do modelo alometrico de Tiepolo et al. (2002) Burguer<- exp(-6.80067 + 3.77738 * log(DBH)) #26 calculo do modelo alometrico de Burguer (2005) Brown.1<- exp (-1.996 + 2.32 * log(DBH)) #27 calculo do modelo alometrico de Brown (1997) Chave.1<- p * exp( -1.499 + (2.148 * log(DBH)) + (0.207 * (log(DBH))^2) - (0.028 * (log(DBH))^3)) #28 calculo do modelo alometrico de Chave et al. (2005) 1 modelos<-data.frame(Tiepolo,Burguer,Brown.1,Chave.1) #29 criando o data frame dos modelos selecionados colnames(modelos)<-c("Tiepolo et al (2002)","Burguer (2005)", "Brown (1997)","Chave et al (2005a)") #30 colocando o nome dos modelos no data.frame modelos media<- c(mean(Tiepolo),mean(Burguer),mean(Brown.1),mean(Chave.1)) #31 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Tiepolo),min(Burguer),min(Brown.1),min(Chave.1)) #32 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Tiepolo),max(Burguer),max(Brown.1),max(Chave.1)) #33 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Tiepolo),sd(Burguer),sd(Brown.1),sd(Chave.1)) #34 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #35 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Tiepolo et al (2002)","Burguer (2005)", "Brown (1997)","Chave et al (2005a)") #36 colocando o nome dos modelos no data.frame modelos } if (variavel=="3") #37 se dados tiver as variaveis H e DBH { stop("Nao existe modelos para essas variaveis") #38 retorna uma mensagem de erros pois nao existe modelos com essas variaveis } if (variavel=="4") #39 se dados tiver as variaveis H, DBH e p { Tiepolo<- 21.297 - (6.953 * DBH) +(0.74 * (DBH)^2) #40 calculo do modelo alometrico de Tiepolo et al. (2002) Burguer <- exp(-6.80067 + 3.77738 * log(DBH)) #41 calculo do modelo alometrico de Burguer (2005) Brown.1 <- exp (-1.996 + 2.32 * log(DBH)) #42 calculo do modelo alometrico de Brown (1997) Chave.1<- p * exp( -1.499 + (2.148 * log(DBH)) + (0.207 * (log(DBH))^2) - (0.028 * (log(DBH))^3)) #43 calculo do modelo alometrico de Chave et al. (2005) 1 Chave.2<- exp( -2.977 + log(p * DBH^2 * H)) #44 calculo do modelo alometrico de Chave et al (2005)2 modelos<-data.frame(Tiepolo,Burguer,Brown.1,Chave.1,Chave.2) #45 criando o data frame dos modelos selecionados colnames(modelos)<-c("Tiepolo et al (2002)","Burguer (2005)", "Brown (1997)","Chave et al (2005a)", "Chave et al (2005b)") #46 colocando o nome dos modelos no data.frame modelos media<-c(mean(Tiepolo),mean(Burguer),mean(Brown.1),mean(Chave.1),mean(Chave.2)) #47 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Tiepolo),min(Burguer),min(Brown.1),min(Chave.1),min(Chave.2)) #48 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Tiepolo),max(Burguer),max(Brown.1),max(Chave.1),max(Chave.2)) #49 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Tiepolo),sd(Burguer),sd(Brown.1),sd(Chave.1),sd(Chave.2)) #50 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #51 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Tiepolo et al (2002)","Burguer (2005)", "Brown (1997)","Chave et al (2005a)","Chave et al (2005b)") #52 colocando o nome dos modelos no data.frame modelos } } if (bioma == "amazonia") #53 se o bioma dos dados for Amazonia { if (variavel=="1") #54 se dados tiver apenas a variavel DBH { Chambers<- exp( -0.37 + (0.333 * log(DBH)) + (0.933 *(log(DBH))^2) + (0.1220 * (log(DBH))^3)) #55 calculo do modelo alometrico de Chambers et al. (2001b) modelos<-data.frame(Chambers) #56 Criando um data.frame dos modelos selecionados colnames(modelos)<-c("Chambers et al (2001)") #57 colocando o nome dos modelos no data.frame modelos media<-c(mean(Chambers)) #58 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Chambers)) #59 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Chambers)) #60 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Chambers)) #61 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #62 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Chambers et al (2001)") #63 colocando o nome dos modelos no data.frame modelos } if (variavel=="2") #64 se dados tiver as variaveis DBH e p { Chambers<- exp( -0.37 + (0.333 * log(DBH)) + (0.933 *(log(DBH))^2) + (0.1220 * (log(DBH))^3)) #65 calculo do modelo alometrico de Chambers et al. (2001b) Chave.1<- p * exp( -1.499 + (2.148 * log(DBH)) + (0.207 * (log(DBH))^2) - (0.028 * (log(DBH))^3)) #66 calculo do modelo alometrico de Chave et al. (2005) 1 modelos<-data.frame(Chambers,Chave.1) #67 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Chambers et al (2001)","Chave et al (2005a)") #68 colocando o nome dos modelos no data.frame modelos media<-c(mean(Chambers), mean(Chave.1)) #69 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Chambers),min(Chave.1)) #70 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Chambers),max(Chave.1)) #71 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Chambers),sd(Chave.1)) #72 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #73 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Chambers et al (2001)","Chave et al (2005a)") #74 colocando o nome dos modelos no data.frame modelos } if (variavel=="3") #75 se dados tiver as variaveis H e DBH { Chambers<- exp( -0.37 + (0.333 * log(DBH)) + (0.933 *(log(DBH))^2) + (0.1220 * (log(DBH))^3)) #76 calculo do modelo alometrico de Chambers et al. (2001b) Scatena<-exp( -3.282 + 0.95 * (log(DBH)^2 * H)) #77 calculo do modelo alometrico de Scatena et al. (1993) Brown.2<-exp (-3.1141 + 0.9719 * log(DBH * H)) #78 calculo do modelo alometrico de Brown et al. (1989) modelos<-data.frame(Chambers,Scatena,Brown.2) #79 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Chambers et al (2001)","Scatena et al (1993)","Brown et al (1989)") #80 colocando o nome dos modelos no data.frame modelos media<-c(mean(Chambers), mean(Scatena),mean(Brown.2)) #81 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Chambers),min(Scatena),min(Brown.2)) #82 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Chambers),max(Scatena),max(Brown.2)) #83 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Chambers),sd(Scatena),sd(Brown.2)) #84 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #85 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Chambers et al (2001)","Scatena et al (1993)","Brown et al (1989)") #86 colocando o nome dos modelos no data.frame modelos } if(variavel=="4") #87 se dados tiver as variaveis H, DBH e p { Chambers<- exp( -0.37 + (0.333 * log(DBH)) + (0.933 *(log(DBH))^2) + (0.1220 * (log(DBH))^3)) #88 calculo do modelo alometrico de Chambers et al. (2001b) Scatena<-exp( -3.282 + 0.95 * (log(DBH)^2 * H)) #89 calculo do modelo alometrico de Scatena et al. (1993) Brown.2<-exp (-3.1141 + 0.9719 * log(DBH * H)) #90 calculo do modelo alometrico de Brown et al. (1989) Chave.1<- p * exp( -1.499 + (2.148 * log(DBH)) + (0.207 * (log(DBH))^2) - (0.028 * (log(DBH))^3)) #91 calculo do modelo alometrico de Chave et al. (2005) 1 Chave.2<- exp( -2.977 + log(p * DBH^2 * H)) #92 calculo do modelo alometrico de Chave et al (2005)2 modelos<-data.frame(Chambers,Scatena,Brown.2,Chave.1,Chave.2) #93 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Chambers et al (2001)","Scatena et al (1993)","Brown et al (1989)","Chave et al (2005a)","Chave et al (2005b)") #94 colocando o nome dos modelos no data.frame modelos media<-c(mean(Chambers), mean(Scatena),mean(Brown.2),mean(Chave.1),mean(Chave.2)) #95 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Chambers),min(Scatena),min(Brown.2),min(Chave.1),min(Chave.2)) #96 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Chambers),max(Scatena),max(Brown.2),max(Chave.1),max(Chave.2)) #97 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Chambers),sd(Scatena),sd(Brown.2),sd(Chave.1),sd(Chave.2)) #98 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #99 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Chambers et al (2001)","Scatena et al (1993)","Brown et al (1989)","Chave et al (2005a)","Chave et al (2005b)") #100 colocando o nome dos modelos no data.frame modelos } } if (bioma == "cerrado") #101 se o bioma dos dados for Cerrado { if (variavel=="1") #102 se dados tiver apenas a variavel DBH { stop("Nao existe modelos para essas variaveis") #103 retorna uma mensagem de erros pois nao existe modelos com essas variaveis } if (variavel=="2") #104 se dados tiver as variaveis DBH e p { Chave.1<- p * exp( -1.499 + (2.148 * log(DBH)) + (0.207 * (log(DBH))^2) - (0.028 * (log(DBH))^3)) #105 calculo do modelo alometrico de Chave et al. (2005) 1 modelos<- data.frame(Chave.1) #106 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Chave et al (2005a)") #107 colocando o nome dos modelos no data.frame modelos media<-c(mean(Chave.1)) #108 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Chave.1)) #109 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Chave.1)) #110 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Chave.1)) #111 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #112 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Chave et al (2005a)") #113 colocando o nome dos modelos no data.frame modelos } if (variavel=="3") #114 se dados tiver apenas a variavel DBH { Rezende<-(-0.49129 +( 0.02912 * DBH^2 * H)) #115 calculo do modelo alometrico de Rezende et al. (2006) modelos<- data.frame(Rezende) #116 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Rezende et al (2006)") #117 colocando o nome dos modelos no data.frame modelos media<-c(mean(Rezende)) #118 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Rezende)) #119 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Rezende)) #120 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Rezende)) #121 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #122 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Rezende et al (2006)") #123 colocando o nome dos modelos no data.frame modelos } if (variavel=="4") #124 se dados tiver as variaveis H, DBH e p { Rezende<-(-0.49129 +( 0.02912 * DBH^2 * H)) #125 calculo do modelo alometrico de Rezende et al. (2006) Chave.1<- p * exp( -1.499 + (2.148 * log(DBH)) + (0.207 * (log(DBH))^2) - (0.028 * (log(DBH))^3)) #126 calculo do modelo alometrico de Chave et al. (2005) 1 Chave.2<- exp( -2.977 + log(p * DBH^2 * H)) #127 calculo do modelo alometrico de Chave et al (2005)2 modelos<- data.frame(Rezende,Chave.1,Chave.2) #128 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Rezende at al (2006)","Chave et al (2005a)","Chave et al (2005b)") #129 colocando o nome dos modelos no data.frame modelos media<-c(mean(Rezende),mean(Chave.1),mean(Chave.2)) #130 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Rezende),min(Chave.1),min(Chave.2)) #131 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Rezende),max(Chave.1),max(Chave.2)) #132 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Rezende),sd(Chave.1),sd(Chave.2)) #133 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #134 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Rezende at al (2006)","Chave et al (2005a)","Chave et al (2005b)") #135 colocando o nome dos modelos no data.frame modelos } } if (bioma == "caatinga") #136 se o bioma dos dados for Caatinga { if (variavel=="1") #137 se dados tiver apenas a variavel DBH { Sampaio.Silva<-0.1730 * DBH^2 #138 calculo do modelo alometrico de Sampaio & Silva (2005) modelos<-data.frame(Sampaio.Silva) #139 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Sampaio & Silva (2005)") #140 colocando o nome dos modelos no data.frame modelos media<-c(mean(Sampaio.Silva)) #141 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Sampaio.Silva)) #142 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Sampaio.Silva)) #143 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Sampaio.Silva)) #144 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #145 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Sampaio & Silva (2005)") #146 colocando o nome dos modelos no data.frame modelos } if (variavel=="2") #147 se dados tiver as variaveis DBH e p { Sampaio.Silva<-0.1730 * DBH^2 #148 calculo do modelo alometrico de Sampaio & Silva (2005) Chave.1<- p * exp( -1.499 + (2.148 * log(DBH)) + (0.207 * (log(DBH))^2) - (0.028 * (log(DBH))^3)) #149 calculo do modelo alometrico de Chave et al. (2005) 1 modelos<-data.frame(Sampaio.Silva,Chave.1) #150 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Sampaio & Silva (2005)","Chave et al (2005a)") #151 colocando o nome dos modelos no data.frame modelos media<-c(mean(Sampaio.Silva),mean(Chave.1)) #152 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Sampaio.Silva),min(Chave.1)) #153 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Sampaio.Silva),max(Chave.1)) #154 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Sampaio.Silva),sd(Chave.1)) #155 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #156 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Sampaio & Silva (2005)","Chave et al (2005a)") #157 colocando o nome dos modelos no data.frame modelos } if (variavel=="3") #158 se dados tiver as variaveis H e DBH { stop("Nao existe modelos para essas variaveis") #159 retorna uma mensagem de erros pois nao existe modelos com essas variaveis } if (variavel=="4") #160 se dados tiver as variaveis H, DBH e p { Sampaio.Silva<-0.1730 * DBH^2 #161 calculo do modelo alometrico de Sampaio & Silva (2005) Chave.1<- p * exp( -1.499 + (2.148 * log(DBH)) + (0.207 * (log(DBH))^2) - (0.028 * (log(DBH))^3)) #162 calculo do modelo alometrico de Chave et al. (2005) 1 Chave.2<- exp( -2.977 + log(p * DBH^2 * H)) #163 calculo do modelo alometrico de Chave et al (2005)2 modelos<-data.frame(Sampaio.Silva,Chave.1,Chave.2) #164 Criando um data frame dos modelos selecionados colnames(modelos)<-c("Sampaio & Silva (2005)","Chave et al (2005a)","Chave et al (2005b)") #165 colocando o nome dos modelos no data.frame modelos media<-c(mean(Sampaio.Silva),mean(Chave.1),mean(Chave.2)) #166 criando o data frame com a media das biomassa estimadas em kg pelos modelos minimo<-c(min(Sampaio.Silva),min(Chave.1),min(Chave.2)) #167 criando um vetor com o valor minimo da biomassa estimada em kg pelos modelos maximo<-c(max(Sampaio.Silva),max(Chave.1),max(Chave.2)) #168 criando um vetor com o valor maximo da biomassa estimada em kg pelos modelos sd<-c(sd(Sampaio.Silva),sd(Chave.1),sd(Chave.2)) #169 criando um vetor com o valor do desvio padrao das biomassas estimadas em kg pelos modelos resultado<-data.frame(media,minimo,maximo,sd) #170 criando o data.frame resultado com os valores de media, minimo, maximo e sd rownames(resultado)<-c("Sampaio & Silva (2005)","Chave et al (2005a)","Chave et al (2005b)") #171 colocando o nome dos modelos no data.frame modelos } } ## CRIANDO OS RESULTADOS modelos #173 chamando o data.frame com as biomassas estimadas por arvore pelos modelos resultado #174 chamando o data.frame dos resultados com os valores de media, minimo, maximo e desvio padrao ## CRIANDO O GRAFICO boxplot (modelos, bty = "l",xlab = "Modelos Selecionados", ylab = "Biomassa estimada (kg)") #175 Plota o boxplot com os titulos dos eixos do grafico. return(resultado) }