R数据框里的空格子不是NA是什么

《R数据框里的空格子不是NA是什么》

起因

我的问题:数据框里无内容的小格,不是NA是什么呢,为什么一列是NA,一列不是?

一开始是出于好奇,后来发现其实这个问题还是有意义的。因为数据框处理空值很轻松,有很多函数,诸如replace_na,filter等,可以对NA进行很多操作。

猜想:na、null、空格、tab

验证

前面两个猜想很好验证,有专门的函数,后面两个也简单,用字符串长度来验证,如果是空格或tab,那么他的长度是1。

《R数据框里的空格子不是NA是什么》 先拿标准的空格和tab试一下
《R数据框里的空格子不是NA是什么》

所以,它既不是NA,也不是NULL,还没有长度。那它是什么?
class一下,顺便把旁边的NA也一起class。

《R数据框里的空格子不是NA是什么》

崩溃,用as.character把这个空格子里的东西打出来好不?

《R数据框里的空格子不是NA是什么》 这就是真相

总结一下,他是一个长度为零的字符串,不是NA,因为NA是真是存在的未知量,而他是已知的,就是nothing!

writeLines函数可以查看它本来的样子:

《R数据框里的空格子不是NA是什么》 i

和tab做了个对比,虽然都是啥也看不出来,但tab是可以选中的,因为他有长度。而上面那个,就真的是nothing。
联想到,read.csv,各种bind类函数,有一个sep参数定义分隔符,没有分隔符时就写作sep=“”,是吧,它并不是na,也不是null,它是一个真实存在的、长度为零的、字符串向量。

那么在数据框中想处理这中空格子该怎么做?

放大招

x[x==""]<-NA
KO!

《R数据框里的空格子不是NA是什么》

当然如果你要把只有空格的格子替换成NA也是可以的:

x[x==" "]<-NA

然后就可以用处理NA的函数进行后续的操作了。

《R数据框里的空格子不是NA是什么》 微信公众号生信星球同步更新我的文章

友情链接:
生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
B站链接:https://m.bilibili.com/space/338686099
YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists
生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA
学徒培养:https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw

    原文作者:小洁忘了怎么分身
    原文地址: https://www.jianshu.com/p/aef98f3fc7d8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞