在R语言中替换空值

目的

如下图所示,想替换无任何字符,又不是NA的值,替换为0

image.png

思路

  • 最初的思路是想匹配两个双引号,但是发现这里的双引号是表示观测值是字符串的数据类型,而不是该字符串本身的字符,尝试了很久也没有匹配成功。
  • 然后想着将nothing的字符串转为NA,然后将NA转换为0,又因为该数据集是matrix类型,方便整列操作,首先将数据转换为数据框

image.png

然后将nothing替换为NA

image.png

最后替换为0,但是发现替换不了,虽然这些值确实是NA

image.png

检查数据格式,这些是factor,所以这里无法替换

image.png

最终明白问题出现在将matrix转换为data.frame,应该在此时加上 stringsAsFactors = F 的参数

image.png

总结

  • 在读入数据框或者转换为数据框时,记得加上stringsAsFactors = F 的参数
  • 匹配特定观测值,然后重新赋值,df[df==”value”] <- newvalue
  • R处理数据时要注意数据格式