Galera, surgiu um outro problema aqui. Estou tentando arrumar, mas está dando um erro que eu desconheço, o erro é esse:


Erro em ans[test & !nas] <- rep(yes, length.out = length(ans))[test &  :
  substituto tem comprimento zero



Usei o comando: ifelse(feeddb,message("Tabela criada e alimentado com sucesso!!"),message("Atencao: Tabela nao foi alimentada!!") )

Pois quando o banco de dados é alimentado, ele sempre da resposta TRUE, então criei esse ifelse para me dizer essas mensagens, só que fica dando o erro que postei em cima.



Abraços,


Victor Eduardo.

Em 7 de abril de 2011 14:59, Victor Eduardo <victorduca08@gmail.com> escreveu:
Pessoal, to com dúvida de como evitar de enviar dados repetidos para o meu banco de dados mysql. Como posso fazer isso? O Script é esse:


dir2 <- paste(dat.dir, anomes, sep="")
dados<-dir(dir2, recursive = TRUE, pattern='\\.txt$', full.names = TRUE)

dados1 <- 0
n<-5
nomecol<- c("sid", "ano", "mes", "dia", "hora", "hh", "lon", "lat", "height", "hls", "ps", "pmsl", "dd", "ff", "t", "td")
 

for ( i in 1:n) {
arquivo<-read.table(dados[i])
attach(arquivo)
dados1<-subset(arquivo, substr(as.numeric(V1), 1, 2) == "82" | substr(as.numeric(V1), 1, 2) == "83")
write.table(dados1,file=paste(anomes, ".txt", sep="paste(anomes, ".txt", sep="")"),append=TRUE,col.names=FALSE, row.names=FALSE)
}
 
dadosf <-read.table(paste(anomes, ".txt", sep=""), col.names=nomecol)
 

 
if(dbExistsTable (con,paste("smar3_",anomes, sep=""))) { 
 dbWriteTable(con,paste("smar3_",anomes, sep=""),dadosf,append=T)
}else {
dbWriteTable(con,paste("smar3_",anomes, sep=""),dadosf, sep="")
}

file.remove(paste(anomes, ".txt", sep=""),showWarnings = TRUE)


Tentei montar um if aqui para tentar avisar que os dados já existem, mas nao ficou muito legal, ele fica sempre jogando dados repetidos para o banco. Alguém tem alguma dica para eu possa evitar isso?


Abraços!