如何替换ffdf列中的所有NA?

问题描述:

我有一个200K行和12K列的ffdf对象。如何替换ffdf列中的所有NA?

这是来自与另一个ffdf对象的左连接,所以在不同列上有很多NA。

如何用特定值替换所有的NA(比如FALSE,因为来自LEFT JOIN的附加列都是LOGICAL)?

我可以成功地使用下面的语法在一列,以取代所有NA在列( “COLTEST”):

ffdfOut$coltest <- with(ffdfOut, ifelse(is.na(coltest), FALSE, coltest)) 

,但下面的循环:

cnamesLogical) <- colnames(ffdfOut)[12:12000] 
for(colname in cnamesLogical) 
{ 
ffdfOut[, colname] <- with(ffdfOut, ifelse(is.na(colname), FALSE, colname)) 
} 

给我的错误: (ffdfOut,ifelse(is.na(colname),FALSE,colname)):'with.ffdf'只返回等于nrow(数据)长度相等的对象

感谢您的帮助!

你可以使用lapply()它遍历一个数据集的每一列

lapply(ffdfOut[,12:12000], FUN=function(coltest) ifelse(is.na(coltest), FALSE, coltest))