R将FF-base和Sqldf结合起来

R将FF-base和Sqldf结合起来,r,sqlite,csv,bigdata,R,Sqlite,Csv,Bigdata,到目前为止,我一直在使用Sqldf和R函数的组合来管理我的数据集。但是,我需要在大型数据集上执行一系列左连接,即使使用sqldf dbname=tempfile(),内存也开始耗尽 我注意到FF的第一件事是无法将其传递给sqldf。我注意到的第二件事是,我的典型功能并不都在ff中工作 我正常加入的例子 base <- read.csv(filename) base <- sqldf("select * from base where DATE > 20120101") for

到目前为止,我一直在使用Sqldf和R函数的组合来管理我的数据集。但是,我需要在大型数据集上执行一系列左连接,即使使用sqldf dbname=tempfile(),内存也开始耗尽

我注意到FF的第一件事是无法将其传递给sqldf。我注意到的第二件事是,我的典型功能并不都在ff中工作

我正常加入的例子

base <- read.csv(filename)
base <- sqldf("select * from base where DATE > 20120101")

for (j in list.files()){
   temp <- read.csv(tempfile)
   temp <- sqldf("select MATCH_KEY, DATE from temp")
   base <- sqldf("select * from base NATURAL LEFT OUTER JOIN temp")
 }

第一个问题的
base。你为什么不这样做

require(ffbase)
base <- read.csv.ffdf(filename)
open(base)
base <- subset(base, DATE > 20120101)

for (j in list.files()){
  temp <- read.csv.ffdf(tempfile, transFUN=function(x){
    x[c("MATCH_KEY","DATE")]
  })
  base <- merge(base, temp, by.x="MATCH_KEY", by.y="MATCH_KEY", all.x=TRUE)
}
require(ffbase)

根据您的第一个问题,
as.ffdf(temp)
应该可以工作。错误是什么?对于第二个问题,您应该给出一个“基本”表,您在
ff
中尝试了什么(您得到了什么错误)。当使用as.ffdf时,错误说明了字符vmodes。对于第二个问题,我的大多数计算都是使用ifelse和行上的和的组合。行上的总和在ff中不起作用。sum(ff[,rowNum]>=5)-->not validTry this:
bodffsql在更改类后看到ffdf,即使没有指定方法。谢谢但是,为什么?我避免读取.csv.ffdf,因为您不能指定分隔符。(可以吗?)我有不同分隔符的文件,具体取决于文件类型“;”表示一个分隔符,而“^”表示其他分隔符,等等。如果需要指定分隔符,并且文件不是严格意义上的csv,请使用read.table.ffdf。谢谢提示!在法国,CSV表示以“;”分隔,这是excel的默认选项。我倾向于接收很多带有奇怪分隔符的文件。
   DF[is.na(DF)] <- 0
require(ffbase)
base <- read.csv.ffdf(filename)
open(base)
base <- subset(base, DATE > 20120101)

for (j in list.files()){
  temp <- read.csv.ffdf(tempfile, transFUN=function(x){
    x[c("MATCH_KEY","DATE")]
  })
  base <- merge(base, temp, by.x="MATCH_KEY", by.y="MATCH_KEY", all.x=TRUE)
}