赞
踩
在学习生物信息的过程中,经常会遇到报错,而报错最多的就是找不到软件或者文件路径,这里我们都成为“对象”,至于你为何还找不着男女朋友的对象呢,这个不是我能解决的问题。今天我们要给大家解决的技术问题是“Object not found”的问题。
在文本界面工作中,经常会遇到各种找不到的问题,比如在Linux命令行中找不到命令,找不到目录文件,在R中找不到对象,找不到函数,在Perl或者python中,找不到某个变量,找不到某个函数等,这类问题核心其实都类似,就是计算机或者软件中没有预先定义。下面我们分别来说明。
R语言属于面向对象编程,不是在你男(女)朋友前面继续写程序。这是另一种区别于面向过程编程,里面涉及类,对象,属性,方法等几个重要概念。在R中,所有的变量,函数等都称为Object。如果没有提前定义某个变量,就会提示这个错误。
a 1b 2a+b
直接a+b没有问题,这两个变量都提前定义了,如果直接 a+d,就会提示错误,因为没有定义变量d。
当出现这种问题的时候,就是这个变量没有被赋值,可能是没有被定义,也可能是前面代码出错,没有赋值成功。“could not find function ”的错误与之类似。
这个错误经常出现在Linux命令行操作中,我相信所有使用Linux的人都会犯过这个错误。这个就需要了解Linux系统的目录结构。由于我们使用windows太久了,已经习惯windows系统C盘,D盘,E盘的分区模式了,刚开始学习Linux目录结构非常不适应。在Linux系统下,如果文件路径写错了,就会提示这个错误。
那么这个错误如何解决呢。方法就是找到文件所在的正确目录,尽量使用Tab键补齐,这样一方面省去敲很多字母的麻烦,更重要的是,如果补齐就说明文件存在,不会出错。
这个错误也是Linux系统操作中经常出现的问题。一种原因是命令写错了,比如单词拼错了,或者大小写写出了,或者把命令和选项写在一起了。另外一个原因就是没有将命令所在目录,添加到系统目录中。
操作系统是如何识别哪些命令可是使用,哪些不能使用呢。它是使用环境变量的方法。系统会内置一个PATH变量,它是Linux系统中的一些特殊目录,比如目录a,b,c,也就是索引的目录。当你敲一个命令的时候,比如bwa,操作系统会首先在a目录中搜索,是否有名字为a的可执行文件,如果没有,就继续到b目录中搜索,以此类推搜索c目录,如果所有目录中都没有,那么就提示“command not found”。
如何解决这种问题呢,其实也不难,将你程序所在目录添加到系统的PATH变量中。或者将可执行程序ln -s软链接到PATH变量中的一个目录即可。
---------- END ----------
(添加作者微信,备注好单位+姓名)
您可能还会感兴趣的 R语言绘图其实并不难 基因学苑文章列表(201808) 如何解决生物软件报错问题 生物学才是终极学科 生物信息重要资源站点合集 Perl还是Python或者R 如何在Linux下优雅的装XCopyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。