【发布时间】:2017-03-21 19:57:50
【问题描述】:
我在使用 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()
然后我开始使用 sqldf 运行我的 sql 查询,结果表似乎将 Ñ 字符替换为 Ã'。这是查询:
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")
谁能帮我找到解决办法?
非常感谢
【问题讨论】:
-
尝试将
encoding中的read.xlsx2设置为“UTF-8” -
不,它是一个自定义函数,它创建一个包含所需列且没有数据的空数据框。然而,这不是错误发生的地方
-
更改编码确实有效,但我不确定它是否能解决问题。是 sqldf 引入了错误
-
您需要创建可重现的错误(带有此类错误的小data.frame)以允许任何人复制粘贴和测试
-
我正在使用 2 组数据,其中一组来自具有这种结构的 xlsx 文件: