【发布时间】:2018-08-24 09:31:02
【问题描述】:
我有一个包含 12000 行和 35 列的数据框,在不同的行或列中有多个 NA。
我想创建一个 ifelse 函数来选择并将它们更改为一个值(如“0”或“9999”)。
我的问题是is.na(dataframe)似乎不适用于整个数据框,但我对为每个单独的列进行选择并不感兴趣。
有没有更好的办法?
【问题讨论】:
-
data[is.na(data)] <- 0,这是怎么回事?你能发布一个例子或预期的输出吗? -
NA 实际上是 NaN .. 也许这可能是问题所在?
-
您似乎更有可能拥有字符串值,例如
"NA",而不是NA。NaN值应该以同样的方式处理。这是一个小例子data = data.frame(x1 = c(1,2,3,4), x2 = c(1,NA,2,NA), x3 = as.character(c("NaN",2,"NA",4)), x4 = c(NaN, 2,3,NA), stringsAsFactors = F); data[is.na(data)] <- 0。你能确定你的专栏是numeric吗? @RLave 的建议应该有效,除非您有字符串值...