R ffdfdply函数崩溃,速度非常慢

R ffdfdply函数崩溃,速度非常慢,r,ff,R,Ff,在学习如何为大型数据集(超过1或2 GB)计算R中的任务时,我尝试使用ffpackage和ffdfdply函数。 (有关如何使用ffdfdply:,请参阅此链接) 我的数据有以下列: id“出生日期”诊断“日期”诊断 每个“id”都有几行,我想提取第一个诊断日期 我将适用这一点: library(ffbase) library(plyr) load(file=file_name); # to load my ffdf database, called data.f . my_fun <

在学习如何为大型数据集(超过1或2 GB)计算R中的任务时,我尝试使用
ff
package和
ffdfdply
函数。 (有关如何使用
ffdfdply
:,请参阅此链接)

我的数据有以下列:
id“出生日期”诊断“日期”诊断

每个“id”都有几行,我想提取第一个诊断日期

我将适用这一点:

library(ffbase)
library(plyr)
load(file=file_name); # to load my ffdf database, called data.f . 

my_fun <- function(x){
                      ddply( x , .(id), summarize, 
                      age  = min(date_diagnose - birth_date, na.rm=TRUE)) 
          }
result  <- ffdfdply(x = data.f, split = data.f$id,
                    FUN = function(x) my_fun(x) , trace=TRUE) ; 
result[1:10,] # to check.... 

我在使用我们最近上传到CRAN的软件包时也注意到了这一点。这似乎是由ffbase包中的重载引起的“[.ff”和“[Hi@jwijffels,感谢您的快速响应。是的,我已经按照您的建议安装了该包,现在ffdfdply正在工作,但subset()不起作用……使R崩溃……还有关于第二点(速度),您认为有没有提高速度的方法是数据的排序方式?”身份证件",例如?嗨,Miguel,很高兴知道您遇到了与我上周遇到的问题相同的问题。我还注意到,自版本0.6-1以来,subset.ffdf出现了问题。这是因为自版本0.5以来,实现发生了更改。我会注意到另一位软件包作者编写的,以便我们可以将新版本上载到CRAN。关于速度问题。正如我在中所指出的,不要像您那样传入整个ffdf(ffdfdply(x=data.f…),而只传入您需要的数据(ffdfdply(x=data.f[c(“id”、“日期诊断”、“出生日期”)),…否则,您将从ff文件中获取所有数据到RAM中,并且您只在函数中使用3列。还要注意,ddply不是最快的函数-doBy更快,或者在FUN.Hint中使用data.table。如果您有多个CPU,您可以使用包并行。我知道只使用我需要的列,但由于它崩溃,我很担心做最简单的一个来检测原因。在我看来,一旦数据按id排序,例如,制作这些摘要就变得非常容易,因为只需从1到nrows读取一次,当id发生变化时,再制作另一个摘要……我们不能通过ff或其他大数据包来完成吗?有什么提示吗谢谢你的其他建议。我的目标是让那些(非常普通的)国王任务运行速度比SAS或SQL快,没有内存错误。您好,谢谢您的反馈。还有一个问题:您是否已经将SAS速度与SQL速度和ff速度进行了比较,如中所示?您能否指出为什么首先对数据进行排序比执行几个FFWhat操作更快?ffdfdply没有考虑请注意,您的数据是按id排序的。但是,为了防止在您有很多id的情况下执行过多的ffwhich操作,它将尝试查看id中的哪些数据可以分块放入ram。因此,减少ffwhich的使用量。
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=Danish_Denmark.1252  LC_CTYPE=Danish_Denmark.1252   
[3] LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C                   
[5] LC_TIME=Danish_Denmark.1252    

 attached base packages:
[1] tools     stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
[1] plyr_1.7.1   ffbase_0.6-1 ff_2.2-10    bit_1.1-9
download.file("http://dl.dropbox.com/u/25690064/ffbase_0.7.tar.gz", "ffbase_0.7.tar.gz")
shell("R CMD INSTALL ffbase_0.7.tar.gz")