R语言编程入门进阶(学会使用函数包)

转自公众号:universebiologygirl
http://mp.weixin.qq.com/s?__biz=MzU1NDkzOTk2MQ==&mid=2247484749&idx=1&sn=b318ffa62d5a32ad876045f4737e4e23

R语言编程入门(爬虫函数包的使用)

写在前面的

上期推文介绍了R语言编程入门,从了解R语言的5种数据结构和两种控制结构开始,再到借上上篇推文的Readscount数据综合利用R语言编程证明Readscount属于负二项分布。现在再回顾一下R语言的五个数据结构:向量、矩阵、列表、数据框、因子,以及两种控制结构,循环和判断。
今天我们来学习R语言编程的进阶——函数包的使用:掌握了一定R语言编程语法后,就要面对更高阶的学习了,我在前面说过,编程最后看的不是你对编程语言的掌握程度,而是看的你的数学能力和逻辑能力。当然在实际的生物信息学或者生物学研究生的工作中,我们没有那么多时间来进行数学模型建立、编程。那么巧妙应用已有的R语言函数包则是完成工作的捷径。R语言函数包非常多,积累并掌握一定数量的R语言函数包对于工作数据处理是有很显著的效率提升!为了让大家学会如何自学R语言函数包,我今天介绍一个大家听说过但又几乎没有接触过的内容——爬虫。

R语言爬虫

        那什么是爬虫呢?爬虫又称网络爬虫,网络爬虫是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。也就是要通过一个程序将互联网网页上的内容获取,互联网上的内容是按照一定的格式或规范展示的,要通过程序获取互联网的内容就需要了解互联网的信息的格式。一般情况下互联网信息都使用一种叫HTML的格式,这种格式的定义是超级文本标记语言(英语:HyperText Markup Language,简称:HTML)是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。

        简而言之,HTML是一种标记语言,通常情况下是由<元素>内容的形式存在,比如你新建一个txt文本文件在里面输入Bioinformatic保存后修改.txt后缀为.html格式,再用你自己的浏览器打开就会出现下图效果

R语言编程入门进阶(学会使用函数包)

        所以在每个HTML文件中,每个内容都会在某个或者某些个元素之下即<元素1><元素2><元素n>你的内容,所以我们要找相关内容只需要找到这些内容对应的元素集合,我们将之称为xpath。所以我们只要找到目标信息对应的xpath就可以批量找到目标信息。读到这里可能很多读者也是蒙圈的,毕竟不是计算机专业出生不会这么快理解这些概念。但是不用担心,有一个Google浏览器插件SelectorGadget,这个可以自动帮助你抓取你想要的信息的路径。下面以一个实际例子来学会如何使用R语言爬虫的函数包。首先安装R语言爬虫函数包rvest


        其次在百度搜索SelectorGadget下载,拖拽到谷歌浏览器的拓展程序界面进行安装。
        以PeerJ文献期刊数据库为爬虫网站,选择数据库的Life & Biology,出现以下内容

R语言编程入门进阶(学会使用函数包)

        注意观察我的图片红色向上箭头指着的部分,这个是网页的变化地址代表第几页。所以在R语言里可以用一个循环来动态访问这里的每一页。接下来就是用SelectorGadget抓取每篇文章的注意观察上图中红色箭头标出的部分,由于网页中可能有其他版块的CSS与你想抓取的部分是一样的,要注意观察Clear中的数量是不是与你在当前页面想抓取的版块数量一致。比如我只想抓取每篇文章的题目,一页放了15篇文章的链接,所以数量是15个。如果数量大于你的预期数量应该找找有没有被多抓取的版块,再用鼠标点击一下他们就可以删除掉多余部分。接下来就是如何利用rvest包进行爬虫了。要学会一个新的函数包首先应该在R语言里使用??函数名称或函数包名称

??rvest

        

        Rstudio的右下部分会弹出这个界面,里面说明了一些有用的教程网站。具体教程读者可以点击进去学习。这里我主要介绍三个有用的爬虫函数及管道符号的使用。首先爬虫的三个重要函数是read_html、html_nodes、html_text。这三个函数无需了解其余参数。首先read_html函数的意思是让R访问并读取你想爬虫的网页,html_nodes函数则是输入你想抓取的信息的xpath路径或者CSS路径(xpath和CSS指代相同的能找到该信息的路径,只是语法不同,例如用SelectorGadget抓取的是CSS路径,那么html_nodes函数中则输入css = ),html_text函数则是将爬虫到的信息以文本形式传递给变量。而管道在R语言中的作用则是将上一条命令的输出作为下一条命令的输入,下面的代码中将会利用管道符串联爬虫函数。

         以爬取Peerj文献期刊新发表文献的题目,并可视化这些题目都有哪些词汇的例子来讲解何使用rvest函数包并强化R语言编程能力

        从词云图可以看出新发表文献主要还是以研究分析、基因、表达等内容较多。当然还有The这些首字母大写的定冠词没有过滤掉。
        本次重点,掌握自学R语言函数包的技能,强化R语言编程能力。掌握R语言爬虫的三个重要函数read_html、html_nodes、html_text使用方法及搭配管道符使用的技能。了解HTML语言本次涉及到的可视化内容我将在下一讲专门介绍R语言可视化知识。

参考

Web-spider网络爬虫

台工大爬虫教程

作者信息:

熊东彦,中国科学院武汉病毒研究所在读研究生,擅长方向:转录组分析、宏基因组分析、R语言编程、Perl语言编程。近期推文内容:R语言编程系列教程

往期精彩文章回顾

从零开始入门R语言编程
RNA-seq中的那些统计学问题(一)为什么是负二项分布?

R语言编程入门进阶(学会使用函数包)》来自互联网公开内容,收录仅供学习使用,如侵权请联系删除。本文URL:https://www.ezixuan.com/1020471.html

(0)
上一篇 2023年 1月 26日 下午8:57
下一篇 2023年 1月 27日 上午9:48