Добавление номеров в базу данных Postgres с помощью RPostgres - PullRequest
0 голосов
/ 03 июля 2018

Мне нравится работать с RPostgres (пакет R) некоторое время, и он работает очень хорошо для большинства вещей. Одна вещь, с которой я недавно столкнулся, - это автоматическое преобразование числовых типов в R в REAL в моей базе данных Postgres. Тип REAL кажется очень неточным, поэтому в идеале я хотел бы привести мои числа к типу, который может обрабатывать намного больше цифр (ничего сумасшедшего, но не менее 10 или около того). Кто-нибудь знает, как я могу это сделать? Вот пример до добавления чисел ...

library(RPostgres)
library(DBI)
library(tibble)

con <- DBI::dbConnect(RPostgres::Postgres(),
                     host = 'localhost',
                     port = 5432,
                     user = 'test',
                     password = '')

test_tbl <- tibble::tibble(number_use =  434.94823992383445)

DBI::dbWriteTable(con, "test_tbl", test_tbl)

1 Ответ

0 голосов
/ 03 июля 2018

Хотя часть спецификаций DBI , которая может или не может быть интегрирована в конкретный API, в данном случае RPostgres, рассмотрим аргумент field.types , передав именованный список имен столбцов и типы.

Ниже используется Postgres NUMERIC (точность, масштаб) тип (синоним DECIMAL), где precision - общее количество цифр для значения как до, так и после десятичной точки со шкалой - количество необходимых десятичных цифр.

# WITH NUMERIC(precision, scale)
dbWriteTable(con, "test_tbl", test_tbl, field.types=list(number_use="numeric(##,##)"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...