R – SQLDF问题与特殊字符

我有一个问题在R和特殊字符运行sqldf。

这里是我正在运行的代码的一个小细节,让你知道发生了什么事情:

首先,我从excel表格中读取数据(使用R的xlsx包),xlsx2似乎正确地获取数据,字符似乎显示特殊字符,如“Ñ”

verif_oblig <- try(read.xlsx2("My computer/Filename.xlsx", sheetName = 'VERIF_OBLIG')) if("try-error" %in% class(verif_oblig)) verif_oblig <- Empty() 

然后,我开始运行我的SQL查询使用sqldf和结果表似乎取代Ñ字符为'。 这是查询:

 verif_oblig_v2 <- sqldf(" select a.*, case when b.Estado is null then 'NO GENERADO' else b.Estado end as ESTADO, case when resultado_operacion in ('EXITO','CORRECTO') then 'EXITO' else 'SIN EXITO' end as RESULTADO_ACTUAL from verif_oblig a left join fin2016 b on a.CUPS = b.CUPS_Largo and a.DIVISION = b.DIVISION") 

任何人都可以帮我find解决办法吗?

非常感谢你

我最终通过简单地使用gsubreplacesql查询之后的字符来解决这个问题:

 clear_errors <- function(table, campo){ table <- as.data.frame(table) table[,campo] <- c(gsub("Ã'","Ñ",c(tabla_entrada[,campo]))) table[,campo]<- c(gsub("é","é",c(tabla_entrada[,campo]))) table[,campo]<- c(gsub("ó", "ó",c(tabla_entrada[,campo]))) table[,campo] <- c(gsub("ú","ú",c(tabla_entrada[,campo]))) table[,campo] <- c(gsub("ñ","ñ",c(tabla_entrada[,campo]))) table[,campo] <- c(gsub("Ã","í",c(tabla_entrada[,campo]))) table[,campo] <- c(gsub("O","A",c(tabla_entrada[,campo]))) return(table) 

}

这不是最优雅的解决scheme,但它的工作原理。

我认为这个问题发生是因为xlsx将字符格式化为因素,并且可能使用与sqldf不同的编码。 如果有人能确切地知道发生了什么,我会非常感激(只是出于好奇)