【问题标题】:How to replace ALL NA in ffdf columns?如何替换 ffdf 列中的 ALL NA?
【发布时间】:2016-05-24 05:45:48
【问题描述】:

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

这是来自与另一个 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)) 出错:'with.ffdf' 只返回 nrow(data) 等长的 ff 对象

感谢您对此的任何帮助!

【问题讨论】:

    标签: r na


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-10
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2022-07-15
      • 2016-12-31
      • 2013-10-23
      • 2016-01-09
      相关资源
      最近更新 更多