从sqlite导入具有大int值的列

时间:2016-02-16 14:04:49

标签: r sqlite data.table

我有一个sqlite数据库,其中包含的int值太大而R无法处理。是否仍然可以在R中导入这些列,以便不会以奇怪的方式转换那些大的int值?

到目前为止我做了什么:

library(DBI)
library(RSQLite)
library(data.table)

# connect to the sqlite file
con <- dbConnect(RSQLite::SQLite(), 'test.sqlite')
# get the perormance_data as a data.frame -> data.table
p1 = dbGetQuery(con,'
SELECT
    Post.post_id,
    Post.created_time
FROM
    Post
            ')
p1 <- as.data.table(p1)

post_id - 列包含大型int值,例如。

1 个答案:

答案 0 :(得分:2)

最简单的 - 只要您不需要对大值进行算术运算 - 应该只是将其作为字符串导入;

library(DBI)
library(RSQLite)
library(data.table)

# connect to the sqlite file
con <- dbConnect(RSQLite::SQLite(), 'test.sqlite')
# get the perormance_data as a data.frame -> data.table
p1 = dbGetQuery(con,'
SELECT
    CAST(Post.post_id AS VARCHAR) post_id,
    Post.created_time
FROM
    Post
            ')
p1 <- as.data.table(p1)
p1