是否可以从PostgreSQL中读取data.table?

是否可以从PostgreSQL中读取data.table?,r,data.table,rpostgresql,R,Data.table,Rpostgresql,我正在对PostgreSQL数据库中存储的大量数据进行分析。出于速度和内存的原因,我使用data.table包。目前我这样做是为了读取数据 library(RPostgreSQL) library(data.table) ... query <- "SELECT * FROM eqtl" data <- as.data.table(dbGetQuery(con, query)) 我想知道是否有更好的方法可以做到这一点,不需要将整个内容读入data.frame,然后将其复制到data

我正在对PostgreSQL数据库中存储的大量数据进行分析。出于速度和内存的原因,我使用data.table包。目前我这样做是为了读取数据

library(RPostgreSQL)
library(data.table)
...
query <- "SELECT * FROM eqtl"
data <- as.data.table(dbGetQuery(con, query))

我想知道是否有更好的方法可以做到这一点,不需要将整个内容读入data.frame,然后将其复制到data.table。

正如Arun在评论中指出的那样,您可以在dbGetQuery结果上使用setDT

此外,我的软件包中还提供了一个助手函数,可以在需要时扩展自动设置关键点的功能。这在链接时非常有用。它还统一了与其他数据库供应商的接口,以便您可以使用不同的数据库链接data.table。 简单的select用法如下所示:

my_dt=dbSELECT*FROM eqtl 设置密钥使用 dbSELECT*FROM eqtl,key=mykeycol 包装手册中的大量扩展示例:

jj_aggr=quotelistamount=sumamount,value=sumvalue
r可能不是您想要的答案,但如果您已经将其作为data.frame读取,您可以使用setDT将其转换为data.table通过引用,从data.frame到data.table的转换应该是即时的-即data@Arun谢谢,这可能就是我最后要做的,尽管我希望从等式中完全删除data.frames。