如何对列表中的每个DF进行操作

How to operate on each DF in a list

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

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

但这会产生很多开销,我想避免这种情况。有没有更聪明的方法来做到这一点?

你可以这样做:

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