首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用RJDBC时,是否可以防止将db NULL自动转换为0?

在使用RJDBC时,是否可以防止将db NULL自动转换为0?
EN

Stack Overflow用户
提问于 2011-03-08 00:47:04
回答 2查看 336关注 0票数 1

我使用RJDBC (DBI)连接到一个H2数据库。在调用dbReadTable或dbGetQuery函数产生的R数据帧中,数据库中为空的字段将被隐式转换为0。

我一直在努力寻找任何关于这个问题的文档,但至少找到了一个来自使用RJDBC连接到mysql数据库的人的关于这个问题的参考资料,所以我目前不认为这个问题是与H2有关的。

我更喜欢数据库值为null的NA或NULL。是否有一些可选参数或其他方法可以防止R中具有DBI的RJDBC驱动程序隐式地替换数据库空值?

编辑:这似乎只发生在数值类型的列中。转换为因子的基于VARCHAR的列似乎具有用于数据库NULL的NAs。隐式0转换是RJDBC处理数值列中空值的已知错误(或危险特性)吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-11 00:16:26

事实证明,隐式的null到0转换是JDBC API的一个“特性”,而RJDBC只是一个简单的包装器。

http://download.oracle.com/javase/6/docs/api/java/sql/ResultSet.html#getDouble(int)

就当我大吃一惊吧。

CRAN上提供的RJDBC 0.1-6的最新开发版本现在可以解决这种虚假行为,并正确地为数值SQL空值返回NA。

票数 1
EN

Stack Overflow用户

发布于 2011-03-08 02:08:53

正如您所指出的,这似乎是RJDBC的一个问题。在RH2 package的0.1-2.3版本中实现了一个解决方法(最近上传到CRAN,现在可以在CRAN和镜像上使用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5222436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档