R {ff} - 在ffdf中使用apply

时间:2015-04-10 12:53:03

标签: r bigdata

我有兴趣在ffdf上使用apply。我想我不能使用ffdfdply,因为我对分割列不感兴趣,因为我必须使用行的所有组件,由4个组件组成(" identifier1""标识符2""值"和"条件"),根据条件填充2个矩阵。 正如这个先前的主题提议(How to use apply or sapply or lapply with ffdf?),我已经尝试过这个:

apply(physical(myffdf),1,function(x){

  if( x["condition"]=="A"){
        matrix1[x["indentifier1"],x["identifier2"]] <<- x["value"]
  } ifelse( x["condition"]=="B") {
        matrix1[x["indentifier1"],x["identifier2"]] <<- x["value"]

  }
})

但是我已经读过physical()返回一个包含原子ff对象的列表,所以逻辑上我不能使用apply。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

看来,你想在行上应用一个函数。你可以使用chunk。获取RAM中的块并使用apply并将其存储在您想要的位置(在RAM或ff中)。

require(ff)
ffiris <- as.ffdf(iris)
for(i in chunk(ffiris)){
  x <- ffiris[i, ]
  apply(x, MARGIN=1, FUN=yourfunction)
}