下面是《数据挖掘第8期》学员投稿
遇到不懂的函数应该要看它的帮助文档,这将是一个很好的习惯。对于初学者来说,看博客往往更容易理解一些。而一味地临摹博客上的代码很容易产生难以发现的错误,给初学者造成了极大困扰。以下是我的亲身经历:
在利用DESeq2进行差异分析时,我试图读入一个数据框
可以看到,运行时报错了,报错内容是“line 1 did not have 5 elements”。我当时理解为,是命令行的第一行不足五个元素,于是再次加了两个参数进去,但还是报错,如下图所示
确认确实是5个参数后,我陷入了沉思,不知道哪里错了(加上那天大脑短路了)
于是查看了帮助文档,发现并没有硬性地要求必须是五个参数,同时看到有许多参数都有默认值,比如
帮助文档中的例子也体现了这个思想
那么问题出在哪呢
在大佬的提醒下,我用head命令查看了所读取的文件“deseq2_input.txt”,然后恍然大悟,发现我自己在Excel表格里面定义了五列(之所以会定义为五列数据,是因为过度依赖博客上面现成的代码,却没有联系自己的数据),而实际上我的数据只有三列,所以第一行数据始终只有三个元素,即错不在函数的参数,而在于我的文件,这是报错的根源所在。(我自己Excel制作了一个错误的文件,不适合R语言读取的)
了解到原因后,我删除了当前的deseq2_put.txt文件,重新在Excel里面生成了一个定义为三列的deseq2_put.txt文件,如图
进入R测试一下,成功!
为了防止犯类似的错误发生,应该在每次建好后使用head命令或者str命令查看一下,将错误扼杀在摇篮里。总而言之,听群主的话,把help、head、str函数需要敲1000遍以上。