Можно ли предотвратить автоконверсию db NULL в 0 при использовании RJDBC? - PullRequest
1 голос
/ 07 марта 2011

Я подключаюсь к базе данных H2, используя RJDBC (DBI).Поля, которые являются нулевыми в базе данных, неявно преобразуются в 0 в R-кадрах данных в результате вызова функций dbReadTable или dbGetQuery.

Я пытался найти какую-либо документацию по этому вопросу, но нашел по крайней мере еще одну ссылку на проблему от того, кто использует RJDBC при подключении к базе данных mysql, поэтому в настоящее время я не ожидаю, что проблема будет с H2.

Я бы предпочел NA или NULL, если значение базы данных равно нулю.Существуют ли какие-либо необязательные параметры или другие средства, препятствующие неявной замене драйвером RJDBC с DBI в R неявных значений базы данных на пустые?

РЕДАКТИРОВАТЬ: Это происходит только для столбцов с числовым типом.Столбцы на основе VARCHAR, преобразованные в коэффициенты, по-видимому, имеют NA для NULL базы данных.Является ли неявное преобразование 0 известной ошибкой (или опасной особенностью) RJDBC, обрабатывающей значения NULL в числовых столбцах?

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Оказывается, что неявное преобразование ноль в 0 - это «особенность» JDBC API, которую RJDBC представляет собой тонкую оболочку.

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

Считай меня изумленным.

Последняя версия разработки RJDBC 0.1-6, доступная в CRAN, теперь работает вокруг этого изнурительного поведения и правильно возвращает NA для числового SQLобнуляет.

1 голос
/ 07 марта 2011

Похоже, это проблема с RJDBC. Обходной путь реализован в версии 0.1-2.3 пакета RH2 (недавно загруженного в CRAN и только теперь доступного в CRAN и зеркалах).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...