Criar função para tirar a média entre grupos sob condições dadas

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 ======================================================================

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@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@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 ======================================================================
_______________________________________________ R-br mailing list R-br@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/

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 <mcz.fea@gmail.com> 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 <alexandresantosbr@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@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 ======================================================================
_______________________________________________ R-br mailing list R-br@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/
_______________________________________________ R-br mailing list R-br@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 forneça código mínimo reproduzível.

Éder, Era exatamente essa a ideia que eu queria resolver, mas expliquei mal e por um caminho bem tortuosa, Agradeço a ajuda, 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 ====================================================================== 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 <mcz.fea@gmail.com <mailto:mcz.fea@gmail.com>> 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 <alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@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 <tel:%28%2B55%29%2065%208132-8112> (TIM) (+55) 65 9686-6970 <tel:%28%2B55%29%2065%209686-6970> (VIVO) e-mails:alexandresantosbr@yahoo.com.br <mailto:e-mails%3Aalexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br> Lattes: http://lattes.cnpq.br/1360403201088680 OrcID: orcid.org/0000-0001-8232-6722 <http://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@listas.c3sl.ufpr.br <mailto:R-br@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/
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@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 forne�a c�digo m�nimo reproduz�vel.

É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") 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: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 ====================================================================== 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 <mcz.fea@gmail.com <mailto:mcz.fea@gmail.com>> 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 <alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@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 <tel:%28%2B55%29%2065%208132-8112> (TIM) (+55) 65 9686-6970 <tel:%28%2B55%29%2065%209686-6970> (VIVO) e-mails:alexandresantosbr@yahoo.com.br <mailto:e-mails%3Aalexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br> Lattes: http://lattes.cnpq.br/1360403201088680 OrcID: orcid.org/0000-0001-8232-6722 <http://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@listas.c3sl.ufpr.br <mailto:R-br@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/
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@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 forne�a c�digo m�nimo reproduz�vel.

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 <alexandresantosbr@yahoo.com.br>:
É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: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 ======================================================================
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 <mcz.fea@gmail.com> 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 < <alexandresantosbr@yahoo.com.br> alexandresantosbr@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 <%28%2B55%29%2065%208132-8112> (TIM) (+55) 65 9686-6970 <%28%2B55%29%2065%209686-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 ======================================================================
_______________________________________________ R-br mailing list R-br@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> 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 R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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 R-br@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 forneça código mínimo reproduzível.
-- Manoel Galdino https://sites.google.com/site/galdinomcz/

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 <mcz.fea@gmail.com> 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 <alexandresantosbr@yahoo.com.br>:
É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: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 ======================================================================
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 <mcz.fea@gmail.com> 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 < <alexandresantosbr@yahoo.com.br> alexandresantosbr@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 <%28%2B55%29%2065%208132-8112> (TIM) (+55) 65 9686-6970 <%28%2B55%29%2065%209686-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 ======================================================================
_______________________________________________ R-br mailing list R-br@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> 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 R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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 R-br@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 forneça código mínimo reproduzível.
-- Manoel Galdino https://sites.google.com/site/galdinomcz/
_______________________________________________ R-br mailing list R-br@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 forneça código mínimo reproduzível.

Muito obrigado Éder e Manuel, faltou o pacote httr, 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 ====================================================================== Em 21/01/2016 21:48, Éder Comunello escreveu:
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 <mcz.fea@gmail.com <mailto:mcz.fea@gmail.com>> 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 <alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@yahoo.com.br>>:
É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 <tel:%28%2B55%29%2065%208132-8112> (TIM)(+55) 65 9686-6970 <tel:%28%2B55%29%2065%209686-6970> (VIVO) e-mails:alexandresantosbr@yahoo.com.br <mailto:e-mails:alexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br> Lattes:http://lattes.cnpq.br/1360403201088680 OrcID:orcid.org/0000-0001-8232-6722 <http://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 <mcz.fea@gmail.com <mailto:mcz.fea@gmail.com>> 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 <alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@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 <tel:%28%2B55%29%2065%208132-8112> (TIM) (+55) 65 9686-6970 <tel:%28%2B55%29%2065%209686-6970> (VIVO) e-mails:alexandresantosbr@yahoo.com.br <mailto:e-mails%3Aalexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br> Lattes: http://lattes.cnpq.br/1360403201088680 OrcID: orcid.org/0000-0001-8232-6722 <http://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@listas.c3sl.ufpr.br <mailto:R-br@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/
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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 forne�a c�digo m�nimo reproduz�vel.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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 forneça código mínimo reproduzível.
-- Manoel Galdino https://sites.google.com/site/galdinomcz/
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@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 forne�a c�digo m�nimo reproduz�vel.

Pode passar o código com o data-set para rodar? Muito obrigado Éder e Manuel, faltou o pacote httr, 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 ====================================================================== Em 21/01/2016 21:48, Éder Comunello escreveu: 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 <mcz.fea@gmail.com> 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 <alexandresantosbr@yahoo.com.br>: É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 <tel:%28%2B55%29%2065%208132-8112> (TIM) (+55) 65 9686-6970 <tel:%28%2B55%29%2065%209686-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 --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

Segue o solicitado Mauro, ##Pacotes e------------------------------------------------------------- require(httr) require(XML) ## Função de leitura do banco de dados do APP #-------------------------------- 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") head(tableFE) #------ lista <- split(tableFE, tableFE$descricao) lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) -- ====================================================================== 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 ====================================================================== Em 22/01/2016 03:20, Mauro Sznelwar escreveu:
Pode passar o código com o data-set para rodar?
Muito obrigado Éder e Manuel, faltou o pacote httr,
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 <mailto:e-mails:alexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto: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 ======================================================================
Em 21/01/2016 21:48, Éder Comunello escreveu:
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 <mcz.fea@gmail.com <mailto:mcz.fea@gmail.com>> 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 <alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@yahoo.com.br>>:
É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 <tel:%28%2B55%29%2065%208132-8112> (TIM)(+55) 65 9686-6970 <tel:%28%2B55%29%2065%209686-6970> (VIVO)
e-mails:alexandresantosbr@yahoo.com.br <mailto:e-mails:alexandresantosbr@yahoo.com.br>
alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br>
Lattes:http://lattes.cnpq.br/1360403201088680
OrcID:orcid.org/0000-0001-8232-6722 <http://orcid.org/0000-0001-8232-6722>
Researchgate:https://www.researchgate.net/profile/Alexandre_Santos10
LinkedIn:https://br.linkedin.com/in/alexandre-dos-santos-87961635
------------------------------------------------------------------------ Avast logo <https://www.avast.com/antivirus>
Este email foi escaneado pelo Avast antivírus. www.avast.com <https://www.avast.com/antivirus>
_______________________________________________ R-br mailing list R-br@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 forne�a c�digo m�nimo reproduz�vel.

Senhores, bom dia! Uma outra alternativa para baixar direto do dropbox... ### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html" page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] head(tableFE) ##Agregando os resultados lista <- split(tableFE, tableFE$descricao); head(lista) lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,2], x[,5]), mean)) ### </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 22 de janeiro de 2016 08:16, ASANTOS <alexandresantosbr@yahoo.com.br> escreveu:
Segue o solicitado Mauro,
##Pacotes e------------------------------------------------------------- require(httr) require(XML)
## Função de leitura do banco de dados do APP #-------------------------------- 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>) head(tableFE) #------
lista <- split(tableFE, tableFE$descricao) lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean))
-- ====================================================================== 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 ======================================================================
Em 22/01/2016 03:20, Mauro Sznelwar escreveu:
Pode passar o código com o data-set para rodar?
Muito obrigado Éder e Manuel, faltou o pacote httr,
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
======================================================================
Em 21/01/2016 21:48, Éder Comunello escreveu:
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 <mcz.fea@gmail.com> 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 <alexandresantosbr@yahoo.com.br>:
É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" <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: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
------------------------------ [image: Avast logo] <https://www.avast.com/antivirus>
Este email foi escaneado pelo Avast antivírus. www.avast.com <https://www.avast.com/antivirus>
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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 R-br@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 forneça código mínimo reproduzível.

Boa noite Éder, Tentei transformar a rotina criada por você em função e não funcionou e não sei porque, poderia me ajudar? Segue CRM: ### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html" page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] head(tableFE) ##Agregando os resultados aggPestFE<-function(x, db=tableFE){ lista <- split(tableFE, tableFE$descricao) results <- x result<-lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) } aggPestFE(tableFE) # ### </code> Obrigado -- ====================================================================== 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 ====================================================================== Em 22/01/2016 09:37, Éder Comunello escreveu:
### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html"
page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] head(tableFE)
##Agregando os resultados lista <- split(tableFE, tableFE$descricao); head(lista) lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,2], x[,5]), mean)) ### </code>

Alexandre, bom dia! Não havia atentado para o problema na importação das tabelas, sendo necessário definir as classes. Além disso, na função você deve se referir a "db" antes que "tableFE" e "x" é definido internamente por lapply(). ### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 # [1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html" page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] str(tableFE) ### todas variáveis estão como fatores - corrigir! classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### OK! head(tableFE) ##Agregando os resultados aggPestFE <- function(db=tableFE, key="descricao"){ lista <- split(db, db[key]) result <- lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) } ### Devido aos "defaults", obtém mesmos resultados nas três formas que seguem: aggPestFE()[5] aggPestFE(tableFE)[5] aggPestFE(tableFE, "descricao")[5] # $`Lagartas Desfolhadoras` # Group.1 Group.2 Group.3 formiga_area qtd_destruido # 1 GN Chale 26 0 62.5 # 2 RD Corrego da Coruja 26 0 50.0 # 3 GN Aeroporto II 28 0 75.0 ### </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]

Muito obrigado Éder!!! Problema resolvido!!! 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 ====================================================================== Em 29/01/2016 08:41, Éder Comunello escreveu:
Alexandre, bom dia!
Não havia atentado para o problema na importação das tabelas, sendo necessário definir as classes. Além disso, na função você deve se referir a "db" antes que "tableFE" e "x" é definido internamente por lapply().
### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 # [1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html"
page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] str(tableFE) ### todas variáveis estão como fatores - corrigir!
classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### OK! head(tableFE)
##Agregando os resultados aggPestFE <- function(db=tableFE, key="descricao"){ lista <- split(db, db[key]) result <- lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) }
### Devido aos "defaults", obtém mesmos resultados nas três formas que seguem: aggPestFE()[5] aggPestFE(tableFE)[5] aggPestFE(tableFE, "descricao")[5] # $`Lagartas Desfolhadoras` # Group.1 Group.2 Group.3 formiga_area qtd_destruido # 1 GN Chale 26 0 62.5 # 2 RD Corrego da Coruja 26 0 50.0 # 3 GN Aeroporto II 28 0 75.0
### </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]

Não consegui rodar, alguém sabe o motivo?
require(RCurl)); require(XML)
Loading required package: RCurl Loading required package: bitops Loading required package: XML
url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1"
url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1
[1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html"
# [1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html"
page <- getURL(url1)
Error in function (type, msg, asError = TRUE) : SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed De: R-br [mailto:r-br-bounces@listas.c3sl.ufpr.br] Em nome de Éder Comunello Enviada em: sexta-feira, 29 de janeiro de 2016 09:41 Para: ASANTOS Cc: r-br@listas.c3sl.ufpr.br Assunto: Re: [R-br] RES: Criar função para tirar a média entre grupos sob condições dadas Alexandre, bom dia! Não havia atentado para o problema na importação das tabelas, sendo necessário definir as classes. Além disso, na função você deve se referir a "db" antes que "tableFE" e "x" é definido internamente por lapply(). ### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 # [1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html" page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] str(tableFE) ### todas variáveis estão como fatores - corrigir! classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### OK! head(tableFE) ##Agregando os resultados aggPestFE <- function(db=tableFE, key="descricao"){ lista <- split(db, db[key]) result <- lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) } ### Devido aos "defaults", obtém mesmos resultados nas três formas que seguem: aggPestFE()[5] aggPestFE(tableFE)[5] aggPestFE(tableFE, "descricao")[5] # $`Lagartas Desfolhadoras` # Group.1 Group.2 Group.3 formiga_area qtd_destruido # 1 GN Chale 26 0 62.5 # 2 RD Corrego da Coruja 26 0 50.0 # 3 GN Aeroporto II 28 0 75.0 ### </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] --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

Bom dia Éder, Tentei criar uma função com os comandos de leitura da tabela em HTML e também não funfou, posso pedir novamente sua ajuda, Obrigado, ## Função de leitura da tabela readFE<- function (x, URL = ""){ page <- getURL(URL) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--# ## Tentativa de leitura da tabela tableFE<-readFE(URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1") head(tableFE) #--------------- -- ====================================================================== 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 ====================================================================== Em 29/01/2016 08:41, Éder Comunello escreveu:
Alexandre, bom dia!
Não havia atentado para o problema na importação das tabelas, sendo necessário definir as classes. Além disso, na função você deve se referir a "db" antes que "tableFE" e "x" é definido internamente por lapply().
### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 # [1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html"
page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] str(tableFE) ### todas variáveis estão como fatores - corrigir!
classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### OK! head(tableFE)
##Agregando os resultados aggPestFE <- function(db=tableFE, key="descricao"){ lista <- split(db, db[key]) result <- lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) }
### Devido aos "defaults", obtém mesmos resultados nas três formas que seguem: aggPestFE()[5] aggPestFE(tableFE)[5] aggPestFE(tableFE, "descricao")[5] # $`Lagartas Desfolhadoras` # Group.1 Group.2 Group.3 formiga_area qtd_destruido # 1 GN Chale 26 0 62.5 # 2 RD Corrego da Coruja 26 0 50.0 # 3 GN Aeroporto II 28 0 75.0
### </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]

Alexandre, no teste que fiz aqui, o problema é na leitura da tabela. A função getURL não está retornando conteúdo que a função readHTMLTable possa extrair.
URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1"> page <- RCurl::getURL(URL)> page[1] "<html>\r\n <head><title>Found</title></head>\r\n <body>\r\n <h1>Found</h1>\r\n <p>The resource was found at <a href=\"https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1\">https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1</a>;\r\nyou should be redirected automatically.\r\n\r\n<!-- --></p>\r\n <hr noshade>\r\n <div align=\"right\">WSGI Server</div>\r\n </body>\r\n</html>\r\n"
Abraços, Paulo Em 30 de janeiro de 2016 12:16, ASANTOS <alexandresantosbr@yahoo.com.br> escreveu:
Bom dia Éder,
Tentei criar uma função com os comandos de leitura da tabela em HTML e também não funfou, posso pedir novamente sua ajuda, Obrigado,
## Função de leitura da tabela readFE<- function (x, URL = ""){
page <- getURL(URL) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--#
## Tentativa de leitura da tabela tableFE<-readFE(URL= "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1>) head(tableFE) #---------------
-- ====================================================================== 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 ======================================================================
Em 29/01/2016 08:41, Éder Comunello escreveu:
Alexandre, bom dia!
Não havia atentado para o problema na importação das tabelas, sendo necessário definir as classes. Além disso, na função você deve se referir a "db" antes que "tableFE" e "x" é definido internamente por lapply().
### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", " <https://dl.dropboxusercontent.com> https://dl.dropboxusercontent.com\\2", url0); url1 # [1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html"
page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] str(tableFE) ### todas variáveis estão como fatores - corrigir!
classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### OK! head(tableFE)
##Agregando os resultados aggPestFE <- function(db=tableFE, key="descricao"){ lista <- split(db, db[key]) result <- lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) }
### Devido aos "defaults", obtém mesmos resultados nas três formas que seguem: aggPestFE()[5] aggPestFE(tableFE)[5] aggPestFE(tableFE, "descricao")[5] # $`Lagartas Desfolhadoras` # Group.1 Group.2 Group.3 formiga_area qtd_destruido # 1 GN Chale 26 0 62.5 # 2 RD Corrego da Coruja 26 0 50.0 # 3 GN Aeroporto II 28 0 75.0
### </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]
_______________________________________________ R-br mailing list R-br@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 forneça código mínimo reproduzível.

Senhores, boa tarde! Na forma que sugeri é necessário alterar o link "default" do dropbox pra acessar diretamente o arquivo. ### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 page <- getURL(url1) # page <- getURL(url1, ssl.verifypeer = FALSE) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### </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 30 de janeiro de 2016 12:17, Paulo Nogueira Starzynski <paulons@gmail.com
escreveu:
Alexandre, no teste que fiz aqui, o problema é na leitura da tabela. A função getURL não está retornando conteúdo que a função readHTMLTable possa extrair.
URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1"> page <- RCurl::getURL(URL)> page[1] "<html>\r\n <head><title>Found</title></head>\r\n <body>\r\n <h1>Found</h1>\r\n <p>The resource was found at <a href=\"https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1\">https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1</a>;\r\nyou should be redirected automatically.\r\n\r\n<!-- --></p>\r\n <hr noshade>\r\n <div align=\"right\">WSGI Server</div>\r\n </body>\r\n</html>\r\n"
Abraços, Paulo
Em 30 de janeiro de 2016 12:16, ASANTOS <alexandresantosbr@yahoo.com.br> escreveu:
Bom dia Éder,
Tentei criar uma função com os comandos de leitura da tabela em HTML e também não funfou, posso pedir novamente sua ajuda, Obrigado,
## Função de leitura da tabela readFE<- function (x, URL = ""){
page <- getURL(URL) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--#
## Tentativa de leitura da tabela tableFE<-readFE(URL= "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1>) head(tableFE) #---------------
-- ====================================================================== 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 ======================================================================
Em 29/01/2016 08:41, Éder Comunello escreveu:
Alexandre, bom dia!
Não havia atentado para o problema na importação das tabelas, sendo necessário definir as classes. Além disso, na função você deve se referir a "db" antes que "tableFE" e "x" é definido internamente por lapply().
### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", " <https://dl.dropboxusercontent.com>https://dl.dropboxusercontent.com\\2", url0); url1 # [1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html "
page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] str(tableFE) ### todas variáveis estão como fatores - corrigir!
classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### OK! head(tableFE)
##Agregando os resultados aggPestFE <- function(db=tableFE, key="descricao"){ lista <- split(db, db[key]) result <- lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) }
### Devido aos "defaults", obtém mesmos resultados nas três formas que seguem: aggPestFE()[5] aggPestFE(tableFE)[5] aggPestFE(tableFE, "descricao")[5] # $`Lagartas Desfolhadoras` # Group.1 Group.2 Group.3 formiga_area qtd_destruido # 1 GN Chale 26 0 62.5 # 2 RD Corrego da Coruja 26 0 50.0 # 3 GN Aeroporto II 28 0 75.0
### </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]
_______________________________________________ R-br mailing list R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@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 forneça código mínimo reproduzível.

Obrigado Éder, Na verdade não tinha atentado a isso, mas agora deu outro erro, sendo: Error in apply(results, 1, function(x) { : dim(X) must have a positive length
str(tableFE99) Error in head(tableFE99) : objeto 'tableFE99' não encontrado
O CRM que estou usando é: ### <code r> require(RCurl); require(XML) ## Função de leitura da tabela readFE<- function (x, URL = ""){ url0 <- URL url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 page <- getURL(url1) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--# ## Tentativa de leitura da tabela tableFE99<-readFE(URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1") str(tableFE99) ### </code> -- ====================================================================== 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 ====================================================================== Em 30/01/2016 14:43, Éder Comunello escreveu:
Senhores, boa tarde!
Na forma que sugeri é necessário alterar o link "default" do dropbox pra acessar diretamente o arquivo.
### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1
page <- getURL(url1) # page <- getURL(url1, ssl.verifypeer = FALSE) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### </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 30 de janeiro de 2016 12:17, Paulo Nogueira Starzynski <paulons@gmail.com <mailto:paulons@gmail.com>> escreveu:
Alexandre, no teste que fiz aqui, o problema é na leitura da tabela. A função getURL não está retornando conteúdo que a função readHTMLTable possa extrair.
>URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" > page <- RCurl::getURL(URL) > page [1] "<html>\r\n <head><title>Found</title></head>\r\n <body>\r\n <h1>Found</h1>\r\n <p>The resource was found at <a href=\"https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1\ <https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1%5C>">https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1</a>;\r\nyou should be redirected automatically.\r\n\r\n<!-- --></p>\r\n <hr noshade>\r\n <div align=\"right\">WSGI Server</div>\r\n </body>\r\n</html>\r\n"
Abraços, Paulo
Em 30 de janeiro de 2016 12:16, ASANTOS <alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@yahoo.com.br>> escreveu:
Bom dia Éder,
Tentei criar uma função com os comandos de leitura da tabela em HTML e também não funfou, posso pedir novamente sua ajuda, Obrigado,
## Função de leitura da tabela readFE<- function (x, URL = ""){
page <- getURL(URL) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--#
## Tentativa de leitura da tabela tableFE<-readFE(URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1>) head(tableFE) #---------------
-- ====================================================================== 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 <tel:%28%2B55%29%2065%208132-8112> (TIM)(+55) 65 9686-6970 <tel:%28%2B55%29%2065%209686-6970> (VIVO) e-mails:alexandresantosbr@yahoo.com.br <mailto:e-mails:alexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br> Lattes:http://lattes.cnpq.br/1360403201088680 OrcID:orcid.org/0000-0001-8232-6722 <http://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 29/01/2016 08:41, Éder Comunello escreveu:
Alexandre, bom dia!
Não havia atentado para o problema na importação das tabelas, sendo necessário definir as classes. Além disso, na função você deve se referir a "db" antes que "tableFE" e "x" é definido internamente por lapply().
### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 # [1] "https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html"
page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] str(tableFE) ### todas variáveis estão como fatores - corrigir!
classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### OK! head(tableFE)
##Agregando os resultados aggPestFE <- function(db=tableFE, key="descricao"){ lista <- split(db, db[key]) result <- lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) }
### Devido aos "defaults", obtém mesmos resultados nas três formas que seguem: aggPestFE()[5] aggPestFE(tableFE)[5] aggPestFE(tableFE, "descricao")[5] # $`Lagartas Desfolhadoras` # Group.1 Group.2 Group.3 formiga_area qtd_destruido # 1 GN Chale 26 0 62.5 # 2 RD Corrego da Coruja 26 0 50.0 # 3 GN Aeroporto II 28 0 75.0
### </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]
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@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 forne�a c�digo m�nimo reproduz�vel.

Alexandre, a própria mensagem de erro já está contando o que acontece. Tópicos: - sua função tem um argumento *x*, que na chamada você não está passando nada... - mesmo que passasse algo no *x*, no código da função você faz *x <- NULL* e depois *results <- x*, ou seja, *results <- NULL* - em seguida, tenta usar a função *any* nesse objeto... não tem nada nele A própria mensagem de erro já te aponta a direção. Além do mais, teu código está meio estranho, como eu apontei nos tópicos acima. Pode ser bom dar uma revisada. Abraços, Paulo Em 30 de janeiro de 2016 18:00, ASANTOS <alexandresantosbr@yahoo.com.br> escreveu:
Obrigado Éder,
Na verdade não tinha atentado a isso, mas agora deu outro erro, sendo:
Error in apply(results, 1, function(x) { : dim(X) must have a positive length
str(tableFE99) Error in head(tableFE99) : objeto 'tableFE99' não encontrado
O CRM que estou usando é:
### <code r> require(RCurl); require(XML)
## Função de leitura da tabela readFE<- function (x, URL = ""){ url0 <- URL url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 page <- getURL(url1) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--#
## Tentativa de leitura da tabela tableFE99<-readFE(URL= "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1>) str(tableFE99) ### </code>
-- ====================================================================== 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 ======================================================================
Em 30/01/2016 14:43, Éder Comunello escreveu:
Senhores, boa tarde!
Na forma que sugeri é necessário alterar o link "default" do dropbox pra acessar diretamente o arquivo.
### <code r> require(RCurl); require(XML) url0 <- " https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", " <https://dl.dropboxusercontent.com> https://dl.dropboxusercontent.com\\2", url0); url1
page <- getURL(url1) # page <- getURL(url1, ssl.verifypeer = FALSE) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### </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 30 de janeiro de 2016 12:17, Paulo Nogueira Starzynski < <paulons@gmail.com>paulons@gmail.com> escreveu:
Alexandre, no teste que fiz aqui, o problema é na leitura da tabela. A função getURL não está retornando conteúdo que a função readHTMLTable possa extrair.
URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1"> page <- RCurl::getURL(URL)> page[1] "<html>\r\n <head><title>Found</title></head>\r\n <body>\r\n <h1>Found</h1>\r\n <p>The resource was found at <a href=\"https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1\">https://dl.dropboxusercontent.com/content_link/tkauy9obP7pgxKYpb9j5ZR2LCSUTe2iJpaULTWEN4RzdfR6AtirbNWGtt8q9Ncex/file?dl=1</a>;\r\nyou should be redirected automatically.\r\n\r\n<!-- --></p>\r\n <hr noshade>\r\n <div align=\"right\">WSGI Server</div>\r\n </body>\r\n</ht ml>\r\n"
Abraços, Paulo
Em 30 de janeiro de 2016 12:16, ASANTOS <alexandresantosbr@yahoo.com.br> escreveu:
Bom dia Éder,
Tentei criar uma função com os comandos de leitura da tabela em HTML e também não funfou, posso pedir novamente sua ajuda, Obrigado,
## Função de leitura da tabela readFE<- function (x, URL = ""){
page <- getURL(URL) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--#
## Tentativa de leitura da tabela tableFE<-readFE(URL= <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1> "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1>) head(tableFE) #---------------
-- ====================================================================== 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 ======================================================================
Em 29/01/2016 08:41, Éder Comunello escreveu:
Alexandre, bom dia!
Não havia atentado para o problema na importação das tabelas, sendo necessário definir as classes. Além disso, na função você deve se referir a "db" antes que "tableFE" e "x" é definido internamente por lapply().
### <code r> require(RCurl); require(XML) url0 <- " <https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1> https://www.dropbox.com/s/znmr0lwda2y6fc5/BD_teste2.html?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", " <https://dl.dropboxusercontent.com>https://dl.dropboxusercontent.com\\2", url0); url1 # [1] " <https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html> https://dl.dropboxusercontent.com/s/znmr0lwda2y6fc5/BD_teste2.html"
page <- getURL(url1) tableFE <- readHTMLTable(page, head=T)[[1]] str(tableFE) ### todas variáveis estão como fatores - corrigir!
classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### OK! head(tableFE)
##Agregando os resultados aggPestFE <- function(db=tableFE, key="descricao"){ lista <- split(db, db[key]) result <- lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) return(result) }
### Devido aos "defaults", obtém mesmos resultados nas três formas que seguem: aggPestFE()[5] aggPestFE(tableFE)[5] aggPestFE(tableFE, "descricao")[5] # $`Lagartas Desfolhadoras` # Group.1 Group.2 Group.3 formiga_area qtd_destruido # 1 GN Chale 26 0 62.5 # 2 RD Corrego da Coruja 26 0 50.0 # 3 GN Aeroporto II 28 0 75.0
### </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]
_______________________________________________ R-br mailing list R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@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 forneça código mínimo reproduzível.
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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 R-br@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 forneça código mínimo reproduzível.

Obrigado Paulo, Tinham inconsistências no meu código que foram corrigidos com suas dicas, porém a segunda função results<-subset(results,!(latitude == "0.00000000" | longitude == "0.00000000")) ele não roda e continua a aparecer coordenadas 0, sendo: ### <code r> require(RCurl); require(XML) ## Função de leitura da tabela readFE<- function (x, URL = ""){ x<-NULL url0 <- URL url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 page <- getURL(url1) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] results<-tableFE results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results,!(latitude == "0.00000000" | longitude == "0.00000000")) results } #--# ## Tentativa de leitura da tabela tableFE99<-readFE(URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1") str(tableFE99) ### </code> -- ====================================================================== 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 ====================================================================== Em 31/01/2016 10:48, Paulo Nogueira Starzynski escreveu:
### <code r> require(RCurl); require(XML)
## Função de leitura da tabela readFE<- function (x, URL = ""){ url0 <- URL url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 page <- getURL(url1) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--#
## Tentativa de leitura da tabela tableFE99<-readFE(URL="https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1>) str(tableFE99) ### </code>
-- ====================================================================== 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 <tel:%28%2B55%29%2065%208132-8112> (TIM)(+55) 65 9686-6970 <tel:%28%2B55%29%2065%209686-6970> (VIVO) e-mails:alexandresantosbr@yahoo.com.br <mailto:e-mails:alexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br> Lattes:http://lattes.cnpq.br/1360403201088680 OrcID:orcid.org/0000-0001-8232-6722 <http://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 30/01/2016 14:43, Éder Comunello escreveu:
Senhores, boa tarde!
Na forma que sugeri é necessário alterar o link "default" do dropbox pra acessar diretamente o arquivo.
### <code r> require(RCurl); require(XML) url0 <- "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1
page <- getURL(url1) # page <- getURL(url1, ssl.verifypeer = FALSE) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### </code>

Senhores, boa noite! Sugiro deixar o procedimento de leitura a parte, isso porque talvez seja necessário reavaliar seus filtros. ### <code r> ## Função para leitura da tabela HTML readFE <- function(url0){ require(RCurl); require(XML) url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 page <- getURL(url1) # page <- getURL(url1, ssl.verifypeer = FALSE) ### SSL certificate problem classes <- c(rep("factor", 6), rep("numeric", 4), "factor") return(readHTMLTable(page, head=T, colClasses=classes)[[1]]) } tableFE99 <- readFE(" https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1") str(tableFE99) ### "filtragem" na forma que você propôs... results <- tableFE99[!apply(tableFE99,1,function(x){any(x=="(NULL)")}),]; results results <- subset(results, !(latitude == 0 | longitude == 0)); results nrow(results) ### 48 ### Linha 24 foi eliminada, mas poderia ser aproveitada com base na linha 25 (mesma lat/long?) tableFE99[24:25,] ### talvez fosse melhor restringir a busca por dados "inválidos" somente em algumas variáveis new <- readFE(" https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1") new[new == "(NULL)"] <- NA incompl <- which(!complete.cases(new[,c(2,3,5,6)])) new[incompl,] ### </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] 2016-01-31 12:04 GMT-03:00 ASANTOS <alexandresantosbr@yahoo.com.br>:
Obrigado Paulo,
Tinham inconsistências no meu código que foram corrigidos com suas dicas, porém a segunda função results<-subset(results,!(latitude == "0.00000000" | longitude == "0.00000000")) ele não roda e continua a aparecer coordenadas 0, sendo:
### <code r> require(RCurl); require(XML)
## Função de leitura da tabela readFE<- function (x, URL = ""){ x<-NULL url0 <- URL url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", "https://dl.dropboxusercontent.com\\2", url0); url1 page <- getURL(url1) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] results<-tableFE results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results,!(latitude == "0.00000000" | longitude == "0.00000000")) results } #--#
## Tentativa de leitura da tabela tableFE99<-readFE(URL= "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1>) str(tableFE99) ### </code>
-- ====================================================================== 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 ======================================================================
Em 31/01/2016 10:48, Paulo Nogueira Starzynski escreveu:
### <code r> require(RCurl); require(XML)
## Função de leitura da tabela readFE<- function (x, URL = ""){ url0 <- URL url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", " <https://dl.dropboxusercontent.com> https://dl.dropboxusercontent.com\\2", url0); url1 page <- getURL(url1) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] x<-NULL results <- x results <- x results<-results[!apply(results,1,function(x){any(x=="(NULL)")}),] results<-subset(results, !(latitude == "0.00000000" | longitude == "0.00000000")) results } #--#
## Tentativa de leitura da tabela tableFE99<-readFE(URL= "https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" <https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1>) str(tableFE99) ### </code>
-- ====================================================================== 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 ======================================================================
Em 30/01/2016 14:43, Éder Comunello escreveu:
Senhores, boa tarde!
Na forma que sugeri é necessário alterar o link "default" do dropbox pra acessar diretamente o arquivo.
### <code r> require(RCurl); require(XML) url0 <- " https://www.dropbox.com/s/foeh9oqbiqlawvg/TALHOES_AGENTE2.htm?dl=1" url1 <- gsub("(^.*)(/s/.*)(\\?.*$)", " <https://dl.dropboxusercontent.com> https://dl.dropboxusercontent.com\\2", url0); url1
page <- getURL(url1) # page <- getURL(url1, ssl.verifypeer = FALSE) classes <- c(rep("factor", 6), rep("numeric", 4), "factor") tableFE <- readHTMLTable(page, head=T, colClasses=classes)[[1]] str(tableFE) ### </code>
_______________________________________________ R-br mailing list R-br@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 forneça código mínimo reproduzível.

Muito obrigado Éder, Tem razão, vou deixar as filtragens para fora da função, 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 ====================================================================== Em 31/01/2016 19:53, Éder Comunello escreveu:
results <- tableFE99[!apply(tableFE99,1,function(x){any(x=="(NULL)")}),]; results results <- subset(results, !(latitude == 0 | longitude == 0)); results

Muito obrigado!!! Segue o solicitado Mauro, ##Pacotes e------------------------------------------------------------- require(httr) require(XML) ## Função de leitura do banco de dados do APP #-------------------------------- 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") head(tableFE) #------ lista <- split(tableFE, tableFE$descricao) lapply(lista, function(x) aggregate(x[,7:8], by=list(x[,3],x[,2],x[,5]), mean)) -- ====================================================================== 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 ====================================================================== Em 22/01/2016 03:20, Mauro Sznelwar escreveu: Pode passar o código com o data-set para rodar? --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus
participantes (5)
-
ASANTOS
-
Manoel Galdino
-
Mauro Sznelwar
-
Paulo Nogueira Starzynski
-
Éder Comunello