如何对列表中的每个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
我在列表中有一堆数据框。我想用 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