我有在数据帧中的多个整数列,全部用的NA,我需要重新编码为0。重新编码的NA在多个数据帧列
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)
生产这样的输出...(仅前几个所示的55)的列
我可以去重新编码来港为0手动像df$col[is.na(df$col)] <- 0
为每列,但考虑到有这么多列,这将需要一段时间才能键入全力以赴。
如何在一行或三行中将所有这些NA重新编码为0?
(我知道我可以融化整数列,然后重新编写一个熔化的列,但我宁愿做在基础R)
Woah ....不敢相信这是那么容易。那么我怎么能指定一个重新编码的列的范围,而不是所有的? –
没关系,我明白了。 'df [6:10] [is.na(df [6:10])] < - 0'。我甚至没想过要连续添加两个方括号。 –
@ TommyO'Dell,没问题。就像我说的,你非常接近! – A5C1D2H2I1M1N2O1R2T1