Alexandre, Tente a seguinte linha:
lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,2], x[,5]), mean)) ================================================ Éder Comunello PhD Student in Agricultural Systems Engineering (USP/Esalq) Brazilian Agricultural Research Corporation (Embrapa) Dourados, MS, Brazil [22 16.5'S, 54 49.0'W] Em 21 de janeiro de 2016 17:55, Manoel Galdino <[email protected]> escreveu: > Nem consigo executar sua função de begar o banco, diz q não existe GET > > cheguei a carrega o pacote XML, mas tbm não funfou > > 2016-01-21 18:28 GMT-02:00 ASANTOS <[email protected]>: > >> Éder, >> >> A sua solução não funcionou com meu exemplo real e não consigo achar o >> problema, sendo que: >> >> ## Função de leitura do banco de dados >> readFE<- function (x, URL = ""){ >> FILE <- GET(url=URL) >> tables <- getNodeSet(htmlParse(FILE), "//table") >> FE_tab <- readHTMLTable(tables[[1]], >> header = >> c("empresa","desc_projeto","desc_regiao", >> >> "cadastrador_por","cod_talhao","descricao", >> >> "formiga_area","qtd_destruido","latitude", >> "longitude","data_cadastro"), >> colClasses = >> c("character","character","character", >> "character","numeric","character", >> "numeric","numeric","numeric", >> "numeric","character"), >> trim = TRUE, stringsAsFactors = FALSE >> ) >> x<-NULL >> results <- x >> x<-FE_tab[-(1),] >> results <- x >> results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] >> results >> } >> #--# >> tableFE<-readFE(URL= >> "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" >> <https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1>) >> tableFE<-tableFE[1:163,1:11] >> head(tableFE) >> >> ##Agregando os resultados >> lista <- split(tableFE, tableFE$descricao) >> lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,2]), mean)) ## >> Não funciona >> >> >> mas se eu faço item por item funciona e não sei porque, sendo: >> >> aggregate(lista$`Psilideo-de-Concha`[,7:8], >> by=list(lista$`Psilideo-de-Concha`[,2],lista$`Psilideo-de-Concha`[,5]), >> mean) >> >> Poderia me dar mais um help? >> >> Obrigado, >> >> 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:[email protected] >> [email protected] >> 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 >> ====================================================================== >> >> Em 21/01/2016 13:37, Éder Comunello escreveu: >> >> Senhores, boa tarde! >> >> Também não entendi direito. Mas talvez a ideia abaixo possa fazer algum >> sentido... >> >> ### <code r> >> tableFE <- structure(list(Bichos = structure(c(2L, 1L, 3L, 1L, 3L, 2L, >> 3L, >> 2L, 1L, 3L, 1L, 3L, 2L, 3L, 3L), .Label = c("Barata", "Besouros", >> "Formiga"), class = "factor"), Talhao = c(73, 15, 74, 75, 15, >> 15, 15, 73, 15, 15, 73, 15, 73, 74, 74), Projeto = structure(c(1L, >> 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L), .Label = c("Abre >> Campo", >> "Vitoria", "Volta Redonda"), class = "factor"), 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, 11.3)), .Names = >> c("Bichos", >> "Talhao", "Projeto", "Injuria", "Area"), row.names = c(NA, -15L >> ), class = "data.frame") >> >> lista <- split(tableFE, tableFE$Bichos); lista >> >> lapply(lista, function(x) aggregate(x[,4:5], by=list(x$Projeto), mean)) >> # $Barata >> # Group.1 Injuria Area >> # 1 Abre Campo 25.0 0 >> # 2 Vitoria 25.0 0 >> # 3 Volta Redonda 62.5 0 >> # >> # $Besouros >> # Group.1 Injuria Area >> # 1 Abre Campo 25 0 >> # 2 Vitoria 100 0 >> # 3 Volta Redonda 50 0 >> # >> # $Formiga >> # Group.1 Injuria Area >> # 1 Abre Campo 0 12.65 >> # 2 Vitoria 0 9.70 >> # 3 Volta Redonda 0 4.75 >> ### </code> >> >> >> ================================================ >> Éder Comunello >> PhD Student in Agricultural Systems Engineering (USP/Esalq) >> Brazilian Agricultural Research Corporation (Embrapa) >> Dourados, MS, Brazil [22 16.5'S, 54 49.0'W] >> >> >> >> >> Em 21 de janeiro de 2016 11:41, Manoel Galdino <[email protected]> >> escreveu: >> >>> 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 < <[email protected]> >>> [email protected]>: >>> >>>> 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 <%28%2B55%29%2065%208132-8112> (TIM) (+55) >>>> 65 9686-6970 <%28%2B55%29%2065%209686-6970> (VIVO) >>>> e-mails:[email protected] >>>> [email protected] >>>> 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 >>>> [email protected] >>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>> Leia o guia de postagem ( <http://www.leg.ufpr.br/r-br-guia> >>>> http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel. >>> >>> >>> >>> >>> -- >>> Manoel Galdino >>> https://sites.google.com/site/galdinomcz/ >>> >>> _______________________________________________ >>> R-br mailing list >>> [email protected] >>> 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 forneça >>> código mínimo reproduzível. >>> >> >> >> >> _______________________________________________ >> R-br mailing >> [email protected]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 forne�a c�digo >> m�nimo reproduz�vel. >> >> >> >> _______________________________________________ >> R-br mailing list >> [email protected] >> 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 forneça >> código mínimo reproduzível. >> > > > > -- > Manoel Galdino > https://sites.google.com/site/galdinomcz/ > > _______________________________________________ > R-br mailing list > [email protected] > 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 forneça > código mínimo reproduzível. >
_______________________________________________ R-br mailing list [email protected] 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 forne�a c�digo m�nimo reproduz�vel.
