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