我需要分析一个大型数据集(约40Go,300万行);太大而无法在电子表格或R中打开。为了解决这个问题,我将它加载到SQLite数据库中,然后使用R(和RSQLite)将其拆分为我可以操作的部分(70,000行)。我需要 Dataframe 格式。我使用as.data.frame
:
#Connecting to the database
con = dbConnect(drv=RSQLite::SQLite(),dbname="path")
#Connecting to the table
d=tbl(con, "Test")
#Filter the database and convert it
d %>%
#I filtered using dplyr
filter("reduce number of rows") %>%
as.data.frame()
它工作,但需要很多时间。如何让它更快(我的RAM有限)?我也试过setDT()
,但它不适用于SQLite数据:
d %>% setDT()
Error in setDT(.) :
All elements in argument 'x' to 'setDT' must be of same length, but the profile of input lengths (length:frequency) is: [2:1, 13:1]
The first entry with fewer than 13 entries is 1
1条答案
按热度按时间krugob8w1#
要使用问题中的
con
处理连续70000行的块,请将下面的print
语句替换为所需的任何处理(base、dplyr、data.table等)。