R{ff}- 在 ffdf 中使用 apply

R{ff}- use apply in ffdf

我对在 ffdf 上使用 apply 很感兴趣。我想我不能使用 ffdfdply 因为我对拆分列不感兴趣,因为我必须使用由 4 个组件组成的行的所有组件("identifier1" "identifier2" "value" 和"condition"), 根据条件填充 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() returns 一个包含原子 ff 对象的列表,所以逻辑上我不能使用 apply。 有什么建议吗?

看来,您想对行应用一个函数。您可以为此使用块。让你在 RAM 中分块并使用 apply 并将其存储在你想要的地方(在 RAM 或 ff 中)。

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