[R-br] Criar função para tirar a média entre grupos sob condições dadas

Manoel Galdino mcz.fea em gmail.com
Quinta Janeiro 21 12:41:17 BRST 2016


Eu não entendi o que você quer fazer. No seu exemplo, o primeiro elemento é
besouro, mas você retornou barata.

Os valores de talhao e area nnao parecem bater com os dados do seu exemplo.
Como para Formiga o talhão de volta redonda seria 73, se na base original
os valores são 74 e 15?

Abc
Manoel

> tableFE

     Bichos Talhao       Projeto Injuria Area
  Besouros     73    Abre Campo      25  0.0
    Barata     15 Volta Redonda     100  0.0
  Formiga     74       Vitoria       0 12.5
   Barata     75    Abre Campo      25  0.0
  Formiga     15 Volta Redonda       0  7.5
  Besouros     15       Vitoria     100  0.0
   Formiga     15    Abre Campo       0  1.5
  Besouros     73 Volta Redonda      50  0.0
   Barata     15       Vitoria      25  0.0
  Formiga     15    Abre Campo       0 23.8
   Barata     73 Volta Redonda      25  0.0
  Formiga     15       Vitoria       0  5.3
 Besouros     73    Abre Campo      25  0.0
  Formiga     74 Volta Redonda       0  2.0
  Formiga     74       Vitoria       0 11.3

Mas seus resultados não têm a média

2016-01-21 11:07 GMT-02:00 ASANTOS <alexandresantosbr em yahoo.com.br>:

> Caros listeiros,
>
>
>    Estou tentando criar uma função aggPestFE que para uma primeira
> variável se for "Formiga", vai tirar a media da coluna 5, mas se for
> "Besouros" ou "Barata" vai tira a média da coluna 4. Sendo que quero o
> resultado dado em forma de list, ficando o meu resultado:
>
> [[1]]
> [1] "Barata"
>
> [[1]][[3]]
>         Projeto Talhao Injuria(%)
> 1    Abre Campo     15        25
> 2 Volta Redonda     73        0
> 3       Vitoria     74        50
>
>
> [[2]]
> [1] "Besouros"
>
> [[1]][[3]]
>         Projeto Talhao Injuria(%)
> 1    Abre Campo     15        0
> 2 Volta Redonda     73        25
> 3       Vitoria     74        50
>
> [[2]]
> [1] "Formiga"
>
> [[1]][[3]]
>         Projeto Talhao   Area  (m2)
> 1    Abre Campo     15        12.5
> 2 Volta Redonda     73        1.5
> 3       Vitoria     74        23.8
>
>
>            Para isso estou tentando:
>
>
> ##Dados artificiais
>
>
> Bichos<-c("Besouros","Barata","Formiga","Barata","Formiga","Besouros","Formiga",
>
> "Besouros","Barata","Formiga","Barata","Formiga","Besouros","Formiga","Formiga")
>
> Talhao<-c(73,15,74,75,15,15,15,73,15,15,73,15,73,74,74)
>
>
> Projeto<-c("Abre Campo", "Volta Redonda","Vitoria","Abre Campo", "Volta
> Redonda",
> "Vitoria","Abre Campo", "Volta Redonda","Vitoria","Abre Campo", "Volta
> Redonda",
> "Vitoria","Abre Campo", "Volta Redonda","Vitoria")
>
> Injuria<-c(25,100,0,25,0,100,0,50,25,0,25,0,25,0,0)
>
>
>
> Area<-c(0,0,12.5,0,7.5,0,1.5,0,0,23.8,0,5.3,0,2.0,11.3)
>
>
> tableFE<-data.frame(Bichos, Talhao, Projeto, Injuria, Area) ## Banco de
> dados criado
>
>
> ##Função
>
> aggPestFE<-function(x, db=tableFE){
>
>
> mylist <- list()
>
>
>
>
>      if (tableFE[,1] != "Formigas") {
>
>         for (i in length(tableFE[,1])){
>
>         GP_FE2<-tableFE[tableFE[,1]==tableFE[i],]
>         aggdata <-aggregate(GP_FE2[,4], list(GP_FE2[,3],GP_FE2[,2]), mean)
> colnames(aggdata)<-c("Regional","Projeto","Talhão","Injúria média (%)")
>         tmp <- list(aggdata)
>         mylist[NPRAGS[i]] <- tmp
>         result<-mylist
>         return(result)
>         }
>
>
>      else if (tableFE[,1] == "Formigas") {
>
>         GP_FE2<-[tableFE[,1]
>         aggdata <-aggregate(GP_FE2[,5], list(GP_FE2[,3],GP_FE2[,2]), mean)
> colnames(aggdata)<-c("Regional","Projeto","Talhão","Injúria média (%)")
>         tmp <- list(aggdata)
>         mylist[NPRAGS[i]] <- tmp
>         result<-mylist
>         return(result)
>         }
>         }
>
> RES<-list(result,aggdata3)
> result<-RES
> return(result)
> }
>
>
> #Teste
> aggPestFE(tableFE)
> #
>
>    Sem sucesso, alguém poderia me ajudar?
>
> Obrigado e abraços,
>
>
>
>
>
>
> --
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Caixa Postal 244
> Avenida dos Ramires, s/n
> Bairro: Distrito Industrial
> Cáceres - MT                      CEP: 78.200-000
> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
> e-mails:alexandresantosbr em yahoo.com.br
>         alexandre.santos em cas.ifmt.edu.br
> Lattes: http://lattes.cnpq.br/1360403201088680
> OrcID: orcid.org/0000-0001-8232-6722
> Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10
> LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
> ======================================================================
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo
> mnimo reproduzvel.




-- 
Manoel Galdino
https://sites.google.com/site/galdinomcz/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160121/12b97a0b/attachment.html>


Mais detalhes sobre a lista de discussão R-br