[R-br] Criar função para tirar a média entre grupos sob condições dadas
ASANTOS
alexandresantosbr em yahoo.com.br
Quinta Janeiro 21 11:07:14 BRST 2016
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
======================================================================
Mais detalhes sobre a lista de discussão R-br