R 在多个数据帧列中重新编码NAs

R 在多个数据帧列中重新编码NAs,r,R,我在一个数据帧中有多个整数列,所有这些都带有NAs,需要重新编码为0 df1 <- as.data.frame(sapply(paste(sample(letters,50,T),sample(letters,10), sep=""), function(x) {sample(c(NA,0:5),10,T)} )) df2 <- as.data.frame(sapply(paste(sample(letters,5,T),sample(letters,10,T), sep=""),

我在一个数据帧中有多个整数列,所有这些都带有NAs,需要重新编码为0

df1 <- as.data.frame(sapply(paste(sample(letters,50,T),sample(letters,10), sep=""), function(x) {sample(c(NA,0:5),10,T)} ))
df2 <- as.data.frame(sapply(paste(sample(letters,5,T),sample(letters,10,T), sep=""), function(x) {sample(letters[1:5],10,T)} ))
df <- cbind(df2,df1)
df1您非常接近:

df[is.na(df)] <- 0

df[is.na(df)]使用
plyr
colwise
元函数可以简化:

dfZ=colwise(function(x)ifelse(is.na(x),0,x))(df)

尽管@mrdwab的方法显然比type.Woah更短。。。。真不敢相信这么容易。我怎么能指定一个要重新编码的列的范围,而不是所有列呢
df[6:10][is.na(df[6:10])]@TommyO'Dell,没问题。就像我说的,你们非常接近!