R:replace_na(df $ col,'')返回'没有适用的' replace_na'适用于类"字符"的对象'

时间:2017-03-25 15:42:52

标签: r na tidyr

我有一个填充了字符串和NA的数据帧列,如下所示:

df <- data.frame(col=as.character(c(NA,'', 'text', '', NA,'text')))

在这种情况下,&#39; &#39;和NA都代表NA,我正在努力标准化,因此两者都是NA,所以两者都是&#39; &#39 ;.我试过这段代码:

df$col <- replace_na(df$col, '')

这段代码:

df$col <- replace_na(df$col, col = c(''))

但这两种方法都会产生以下结果:

 Error in UseMethod("replace_na") : 
  no applicable method for 'replace_na' applied to an object of class "character"

我知道这是一个常见的操作,我确信解决方案很简单。用字符串替换NA的语法是什么? (或者,我的标准化&#39;和NA值的问题的最佳解决方案是什么?)

2 个答案:

答案 0 :(得分:2)

试试这个:

df$col[is.na(df$col)] <- ''

答案 1 :(得分:2)

tidyr::replace_na()的参数是

function (data, replace = list(), ...) 

完整数据放在第一个参数(data)中,然后在第二个参数(replace)的列表中添加名称 - 值对。

tidyr::replace_na(df, list(col = ""))
#    col
# 1     
# 2     
# 3 text
# 4     
# 5     
# 6 text