来源:Tal Galili 编译:思亮

r

R语言教程类型繁多,初学者往往会不知道从何学起。本文就此对R语言的学习路径做一个梳理,主要参考了Tal Galili对R学习路径的文。

章R语言有关资源众多,可以帮助读者学习不同R的方面特性,然而初学者会感到迷茫。R语言发展变化速度比较快,使用人员有必要了解一些最新的技术。

R-blogger(http://www.r-bloggers.com/)和DataCamp(https://www.datacamp.com/?tap_a=5644-dce66f&tap_s=10907-287229)提供了比较多的R语言最新进展和学习资料。同样,本文提供的学习资料大部分为在线学习资源。

学习路径

  • 开始:R基础
  • 系统设置
  • R程序包
  • 数据导入至R
  • 数据操作
  • 数据可视化
  • 数据科学和机器学习
  • R生成报告
  • 学习高级R相关在线课程(付费)
  • 后续步骤

开始:R基础

最好的学习R语言方法是参考DataCamp的free introduction to R tutorial以及Intermediate R programming。这2个课程均可以按照用户的学习进度来动态教学。用户可以在学习过程中,有不懂的地方复习某个部分。

另一个是O’ reilly的代码学校,叫做try R。动态线下学习资源有swirl,通过安装程序包,选择课程库来学习。如果想要无需安装任何软件来学习,可以选择在线版Swirl。

edX和Coursera下面有很多R基础教程。edX中有Introduction to R programming,这是一个微软的8小时R语言基本语法教程。Coursera有非常有名的 R Programming course by Johns Hopkins。这2个教程都比较不错。

如果通过电子书来学习R也是个不错的选择。CRAN上有introduction to R mannual(R导论),并且可以下载到对应的中文版。另外,Jared Lander的 R for everyone 和Robert Kabacoff的R in action(R语言实战)都可以有网上对应的免费资源。

系统设置

用户可以从CRAN上下载最新版的R语言,Linux,Mac和Windows均有对应的版本。

一旦安装好R语言,用户可以选择利用R控制台或者集成开发环境(IDE)来开展工作。Rstudio是一款相对主流的IDE,支持调试,工作空间管理,绘图,制作程序包等较为常见的功能。

还有其他的IDE包括Architect,R-commander,NotePad++,Tinn-R等,这些工具也可作为IDE使用,如果仅仅平时用R来做些学习或者探索,上述工具均可满足使用。如果需要经常性制作程序包,Rmd文件或者维护较多代码脚本的话,笔者推荐使用Rstudio。

R程序包

R程序包是R语言可以长期发展并流行的驱动力。R程序包是一些有功能代码,数据,文档和测试有关集合。相比于其他代码语言,R语言程序包在CRAN和github上面都有丰富的资源。使用程序包前要安装。有些程序包,如base包,在程序安装时就自动安装。其他的程序包,如ggplot2,除非你主动安装,并不会随R一起安装。

很多程序包在CRAN上均可获取,CRAN上的程序包较为严谨,发布条件比较苛刻,同时程序包的质量也一定保障。CRAN有覆盖全球的网络下载服务器,均提供同样最新版的程序包,使用install.package函数可以很容易安装至R。CRAN上维护一系列的任务集,旨在对某些特定研究领域提供对应的程序包,如TimeSeries,专门负责归集和时间序列有关的程序包。

其他的有bioconductor归 集了专门负责分析遗传数据的程序包。Github和bitbucket上有很多R的程序包开发者。通过devtools程序包可以很容易访问这些资源。

有时寻找R包比较艰难,CRAN上提供了R程序包列表,通过查看列表可以找到有用信息。

最后,用户一旦开始使用R,可能会因为包依赖问题让人觉得头疼。使用packrat和checkpoint包可以控制不同版本的R包。如果希望在windows下升级R语言,可以使用installr包下的updateR函数。

数据导入至R

用户需要导入R的数据可能有很多种:纯文本文档,其他统计软件文档,数据库和网络数据等。

不同数据类型导入R语言需要不同的方法。学习不同数据导入R语言可以参考教程(https://www.datacamp.com/courses/importing-data-into-r?tap_a=5644-dce66f&tap_s=10907-287229)

  • 文本文档:最简单的文本数据,R中有很多可以导入文本为data frame的函数,如read.table,read.csv等。
  • excel数据:如果需要导入excel数据可以考虑readxl程序包,也可以参考gdata和XLConnect程序包
  • SAS,STATA和SPSS使用了自身的文件类型。Hadley Wickham制作的foreign程序包可以读入上述数据。
  • 程序包用于导入关系型数据库的主要依赖所用数据库类型。MySQL数据库用RMySQL包,其他如RpostgreSQL和ROracle包。操作和访问数据库的包有DBI。
  • 使用R获取网络数据或者通过api抓取数据的有rvest。Rolf Fredheim的博客链接提供了大量的资源。

数据操作

为把原始数据转换成结构良好的数据是重要的,后续才能有强大的分析,使数据适合处理。R有许多内置的数据处理功能,但它们并不总是那么易用。幸运的是,有一些NB的软件包,可以帮助你:

  • tidyr程序包:可以整理每个列是一个变量,每一行一个观察。因此,它将您的数据转换成易于使用的数据。检查这个优秀的资源如何整理你的数据使用tidyr。
  • 如果处理字符串,应考虑学历stringr包。vignette包可以提供入门的有用实例。
  • dplyr处理data frame这类对象时比较给力,语法直观。
  • 大型数据处理使用data.table包可以加快读取单个大文本文件的速度。
  • lubridate包用于处理时间日期类的数据比较有用。
  • 时间序列处理可以考虑使用zoo, xts, quantmod.

如果我们想对基于R的数据操作有更多了解可以参考《Data Manipulation with R》。 data wangling with R 学习视频:https://www.rstudio.com/resources/webinars/data-wrangling-with-r-and-rstudio/

后续文章将介绍R有关教程的第二部分,敬请关注。


生信圈致力于每天推送生物信息干货,让大家了解生信行业。旨在通过更多的交流促进行业的发展。我们一直在寻找志同道合的伙伴!投稿邮箱:bioinfor_club@163.com

更多内容请关注我们的官方微信公众号微信“生信圈”,微信ID:bioinfor-club

 
生信圈二维码.jpg扫一扫二维码关注