
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@yahoo.com.br alexandre.santos@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 ======================================================================