##
## Leitura, verificação e preparo dos dados geoquímicos
##

## carregando os pacotes que serão usados (foreign)
require(foreign)

##
## Lendo e preparando dados químicos do arquivo CSV
##
## Ler de arquivos a tabela de dados químicos e coordenadas dos pontos de coleta
agua <- read.csv("agua2.csv", header=T, sep=";", na.string="-9.999.990.000")
head(agua)
# ajustando nomes
nm <- strsplit(names(agua), "_")
nm <- sapply(nm, function(x) x[x != ""])
names(agua) <- paste(sapply(nm, function(x) x[1]),
                     sapply(nm, function(x) ifelse(is.na(x[2]),"",
                                                   paste(".",x[2], sep=""))), sep="")
head(agua)
summary(agua)
## os dados acima estão inconsistentes, vamos extrair apenas ID's e LatLong
ll <- agua[,4:5]

##
## lendo os dados do arquivo DBF
##
teores <- read.dbf("agua2.dfb")
head(teores)

## recodificando dados perdidos 
teores[teores==-999999] <- NA 

## verificando tipos dos dados
str(teores)

## verificando se a orde é a mesma que para LongLat
all.equal(agua$BACIA, teores$BAC)

# ajustando nomes
nm <- sapply(strsplit(names(teores), "_"), function(x) x[x != ""]) 
names(teores) <- paste(sapply(nm, function(x) x[1]),
                     sapply(nm, function(x) ifelse(is.na(x[2]),"",
                                                   paste("_",x[2], sep=""))), sep="")
names(teores)
head(teores)
summary(teores)

## montando e exportando novo objeto de dados
teores <- cbind(teores[,(1:3)], ll, teores[,-(1:3)])
dim(teores)
head(teores)


## gravando novo arquivo de dados
write.table(teores, "aguafix.csv", quote=F, sep=";",row.names=F)


