我正在使用 RJDBC (DBI) 连接到 H2 数据库。由于调用 dbReadTable 或 dbGetQuery 函数,数据库中为空的字段在 R 数据帧中被隐式转换为 0。
我一直在努力寻找这方面的任何文档,但至少从使用 RJDBC 连接到 mysql 数据库的人那里找到了另一个对该问题的引用,所以我目前不认为问题出在 H2 上。
我更喜欢数据库值为空的 NA 或 NULL。是否有一些可选参数或其他方法可以防止 R 中带有 DBI 的 RJDBC 驱动程序隐式替换数据库空值?
编辑:这似乎只发生在数字类型的列上。转换为因子的基于 VARCHAR 的列似乎具有数据库 NULL 的 NA。隐式 0 转换是 RJDBC 处理数字列中的 NULL 的已知错误(或危险特性)吗?