我有兴趣在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。 有什么建议吗?
答案 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)
}