R lapply将NA转换为0

时间:2013-11-07 23:39:57

标签: r apply na

我正在尝试使用以下代码将NA的列子集转换为0。不幸的是,它将所有单元格都变为0。

df1 <- data.frame(id = 1:20, col1 = runif(20), col2 = runif(20), col3 = runif(20))

df1[sample(1:20,5),'col1'] <- NA
df1[sample(1:20,5),'col2'] <- NA
df1[sample(1:20,5),'col3'] <- NA

subset1 <- c('col1','col2','col3')

df1[,subset1] <- as.data.frame(lapply(df1[,subset1], function(x) x[is.na(x)] <- 0))

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

尝试这种简单的方法

df1[is.na(df1),] <- 0