使用 RPostgres 将数字添加到 Postgres 数据库
Adding Numbers to Postgres Database using RPostgres
我很喜欢使用 RPostgres(R 包)有一段时间了,它在大多数情况下都能很好地工作。我最近 运行 的一件事是它似乎自动将 R 中的数字类型转换为我的 Postgres 数据库中的 REAL。 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)
虽然 DBI specifications 的一部分可能会或可能不会被整合到特定的 API 中,这里是 RPostgres,请考虑 field.types 参数, 传递列名和类型的命名列表。
下面使用 Postgres NUMERIC(precision, scale) 类型(与 DECIMAL 同义),其中 precision 是带有 的小数点前后值的总位数scale 是所需的小数位数。
# WITH NUMERIC(precision, scale)
dbWriteTable(con, "test_tbl", test_tbl, field.types=list(number_use="numeric(##,##)"))
我很喜欢使用 RPostgres(R 包)有一段时间了,它在大多数情况下都能很好地工作。我最近 运行 的一件事是它似乎自动将 R 中的数字类型转换为我的 Postgres 数据库中的 REAL。 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)
虽然 DBI specifications 的一部分可能会或可能不会被整合到特定的 API 中,这里是 RPostgres,请考虑 field.types 参数, 传递列名和类型的命名列表。
下面使用 Postgres NUMERIC(precision, scale) 类型(与 DECIMAL 同义),其中 precision 是带有 的小数点前后值的总位数scale 是所需的小数位数。
# WITH NUMERIC(precision, scale)
dbWriteTable(con, "test_tbl", test_tbl, field.types=list(number_use="numeric(##,##)"))