我有一个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对象
感谢您的帮助!
答案 0 :(得分:0)
您可以使用lapply()
迭代数据集的每一列
lapply(ffdfOut[,12:12000], FUN=function(coltest) ifelse(is.na(coltest), FALSE, coltest))