统计分析与数据挖掘

处理数据要像上厕所一样,完事之后要看一眼自己的“粑粑”

2020-04-16  本文已影响0人  冻春卷

相信你在看各种教程的时候都会遇到过这种情况

# load data
data <- read.table(file = "matrix.tsv",header = T, sep = "\t")
data[1:4, 1:4]

关于这个data[1:4, 1:4]相信你不是只看到一次,甚至有些po主在教程里面不断地使用这个方法查看自己生成的中间数据。当然你会明白作者这么写的原因,那就是检查数据呀。但Rstudio明明是可以预览数据的,一定要打这行代码吗?他们打这个是为什么?是个人习惯,还是这行代码非常重要?
答案是:要打!优秀数据处理习惯!非常重要!

原因是:(1)数据清洗过程中,数据变化的检查是基本要求,如此才可以跟踪数据是否按照我们的意向转换;(2)Rstudio预览和实际情况可能有出入;(3)凡是能用代码解决的,我们就是不想按那个button。

直至今天,我也才意识到这个数据检查的习惯有多么重要,而且建议大家都要养成。今天的例子是来自我可爱的师姐(已经得到作者同意)。

Question 1

(1)问题描述
师姐今天首先说画韦恩图的时候代码报错,报错信息如下

image.png

(2)解决思路和过程
看到这个报错我也是懵的,其实看不懂,但是报错信息中写着length之类的东西,说明是input数据处理问题。查看input数据的来源,发现input是数据框。

发现input数据为数据框

image.png
通过查阅代码说明书,发现数据input必须是vector,因此建议师姐将input数据修改为vector数据格式
image.png

(3)解决结果
改变input为vector之后,确实代码没有再报刚刚那个错。这里吸取的教训是,使用自己不熟悉(自己不能写出来,要copy)的代码的时候,最好不要忘了打个问号,查阅一下函数说明书。

Question 2

(1)问题描述
这个问题是接上面的那个问题而来的,虽然代码没有报错,但是画出来的韦恩图还是奇奇怪怪。

image.png

(2)解决思路和过程
由于韦恩图的思路就是匹配一样的就放在一个圈里,因此我们要查看一个需要匹配的数据是都正常。

数据果然不太正常

image.png
造成这样数据的原因:数据本身带有双引号!
双引号有时候会让我觉得有点薛定谔,不知道它到底在不在。在这个case里面确实是双引号的原因:你看到的是16.24_543.1356m/z只是你看到的 ,实际上是"16.24_543.1356m/z",由于而"是一个可以作为通配符的东西,为了将"的意思从通配符转为它本身,所以需要一个转义符号“\”

因此我们解决的思路则是:消灭数据中的双引号,同时不要全盘相信Rstudio数据预览的结果

(3)解决结果

使用gsub去除双引号

D7GSMab_ion <- gsub("'",'',D7GSMab_ion$ion)
image.png

绘制韦恩图

library(VennDiagram)
venn.diagram(x = list("A"=D7GSLab_ion,"B"=D7GSMab_ion,"C"=D7GSHab_ion),
             filename = "D7_ion.png",
             margin = 0.1, 
             imagetype="png", height = 450,
             width= 450, resolution =300,lwd=0.6,
             alpha= 0.7,
             fill=c("blue","green3","orange"),
             cex=0.45, cat.cex=0.45)

成功啦!

image.png

结尾

坐久了站起来走动一下,数据分析可以马上重来,我们的身体健康却不能。

上一篇下一篇

猜你喜欢

热点阅读