atrai.aves<- function(local,agrup,ind,fuste,cap,h,copa,riq) { ### data.frame base #################### dados<-data.frame (local,agrup,ind,fuste,cap,h,copa,riq) dados$dap<- round(dados$cap/pi) ##adicao coluna dap dados$area.basal<- round(pi*(dados$dap/2)^2) ##adicao coluna area.basal ##### indexando dados por agrupamento ##################### a <-aggregate(dados$area.basal, list(local=dados$local , agrup= dados$agrup, ind=dados$ind),sum) ### area basal para individuos com varios fustes a.basal.grup<- (aggregate(a$x, list(local=a$local,agrup= a$agrup),mean)) ### tirando a media dos valores de area basal dos agrupamentos, por local -- em caso de arvores solitarias a media nao afetara os valores de area basal h.grup<- aggregate(dados$h, list(local=dados$local , agrup= dados$agrup),mean) ### area basal por agrupamento copa.grup<- aggregate(dados$copa, list(local=dados$local ,agrup= dados$agrup ),sum) ### copa por agrupamento riq.grup<-aggregate(dados$riq, list(local=dados$local ,agrup= dados$agrup ),mean) ### riqueza por agrupamento ##### calculo TSI ######################################## dados2 <- data.frame(local= copa.grup$local, agrup=h.grup$agrup , a.basal= a.basal.grup$x , altura= h.grup$x , copa= copa.grup$x, riqueza=riq.grup$x) dados2$copa<- round(dados2$copa) dados2$a.basal<- round(dados2$a.basal) dados2$TSI<- round(dados2$a.basal * dados2$altura * dados2$copa/10000) ###### indexando dados por local ########################## TSI.local<- aggregate(dados2$TSI, list(local=dados2$local),sum) riq.local<-aggregate(dados2$riqueza, list(local=dados2$local),mean) ###### data.frame final ##################################### dados4<-data.frame(local= TSI.local$local,TSI= TSI.local$x, riqueza=round( riq.local$x)) ### vai virar return m1<-lm(riqueza~TSI, data=dados4) #### modelo linear grafico<-plot(riqueza~TSI, data=dados4,ylab= "Riqueza", bty= "l", pch= 16) abline(m1) resultado<-summary.lm(m1) return (resultado)}