如何操作列表中的每个DF

时间:2015-04-02 12:01:00

标签: r lapply na

我在列表中有一堆数据框。我想用0覆盖每个DF中的每个NA。我可以这样做:

data <- lapply(1:n, function(x){
        df <- merged[[x]]
        df[is.na(df)] <- 0
        merged[[x]] <- df
        }
) 

但这会产生很多开销,我想避免。这样做有更明智的方式吗?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

merged <- replicate(2, data.frame(c(1, NA)), simplify = FALSE)
(data <- lapply(merged, function(df) { df[is.na(df)] <- 0; df} ) )
# c.1..NA.
# 1        1
# 2        0
# 
# [[2]]
# c.1..NA.
# 1        1
# 2        0