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

时间:2016-02-12 22:35:41

标签: r na

我有一个200K行和12K列的ffdf对象。

这是来自另一个ffdf对象的LEFT JOIN,因此在不同的列中有很多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))
}

给我错误:

with.ffdf(ffdfOut,ifelse(is.na(colname),FALSE,colname))出错:&#39; with.ffdf&#39;只返回等长nrow(数据)的ff对象

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用lapply()迭代数据集的每一列

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