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>