这篇文章作为R语言学习系列的开篇,记录一下我的想法。
刚开始接触R语言是因为单细胞数据分析的需要,那时完全是零基础,学习过程是边抄别人的代码,边理解这些代码的含义,遇到了比较多的坑,包括软件安装,环境配置,R包安装,代码换了参数就报错等。这种纯实战虽然可以快速“上手”,但是没有基础很难提升,而且很难写出自己的代码。
接着看了一部分《R语言实战》了解了对象类型,数据结构等基础知识。《R for Data Science》这本书刚开始也看了一些,可能因为没基础,看的也还是吃力,就搁置下来,比较多的是看别人写的代码,自己去试错,效率也比较低。
前段时间又回过头看这本书,发现这本书前面关于数据清洗的内容就可以解决很多我实际遇到的问题了,觉得这本书其实很适合初学者,所以打算跟练这本书上的内容,加强基础,也会穿插一些自己的感悟,同时通过公众号记录和分享。
关于《R for Data Science》
很多R语言的书都是从对象类型,数据结构等编程基础知识讲起,虽然这很重要,但也还是需要理解的,放在开始对初学者确实不友好,特别是因为有数据分析需求又没充足时间学习的人来说,可能没法直接静下心来理解各种基础概念。《R for Data Science》是从一些简单的实例开始,并没有在一开始就深入讲解各种概念,这样就可以边跟练边理解。
整本书的内容围绕下图:
是从数据科学整体流程来讲的,前面的数据导入,整理转换,都是我们分析数据不可避免会遇到的,而且数据的清洗是时间花费占比较多的步骤,需要重点掌握,可视化对于我们生信分析也比较重要。
需要的软件
R和RStudio,这本书内容都是在RStudio软件中完成的,RStudio很适合初学者使用,毕竟是专门针对R开发的IDE,界面简洁明了,功能很多,操作也比较人性化,有很多好用的快捷键。界面如下:
Rstudio界面
在这里简要介绍下Rstudio的界面,我这个是server版,只有少数细节与桌面版有区别。图中1是脚本窗口,主要用来输入,运行和保存代码;2是控制台,这里可以直接输入代码后按enter运行,对于一些简单的测试代码可以直接在这里运行,在脚本窗口运行的代码也会在这里显示;窗口3这里可以管理文件和R包,画图展示,查看帮助信息;窗口4主要用到的是环境界面,这里会显示所有创建的对象,也可以在History查看历史输入内容。
对象和函数
顺便简单介绍下对象和函数,在Rstudio中,我们导入的数据或是自己创建的数据都是以对象的形式显示在环境窗口(储存在了内存里),如我创建了对象a和b,它们的值分别是1和2;函数是具有一定功能的对象,如sum(),它可以将输入的参数相加求和;另外函数的格式是"函数名 ()",且都是英文字符,R代码是区分中英文字符和大小写的,任何字符格式的错误都会导致函数无法正常运行。
需要的R包
R包可以理解为我们在windows电脑中软件的插件,R包集成了功能函数,说明文档,有的还会包含一些数据以供调用,不同的R包具有不同的功能,这样就极大拓展了R基础软件的功能。这篇文章开始需要的R包是tidyverse,这个R包涵盖了很多数据清洗和作图需要的小的R包,如readr,tidyr,dplyr,ggplot2等。
安装R包
R包主要来源于CRAN这个库,对于我们生信分析还有Bioconductor库,少部分可能需要从git-hub上下载。安装可以在rstudio的Console栏的命令提示符 > 后输入以下代码:
代码语言:javascript复制> install.packages("tidyverse")
加载R包
安装好的R包需要加载后才能使用,可以用函数library()来实现:
代码语言:javascript复制> library(tidyverse)
── Attaching packages ──────────────────────────────────── tidyverse 1.3.1 ──
✓ ggplot2 3.3.5 ✓ purrr 0.3.4
✓ tibble 3.1.4 ✓ dplyr 1.0.7
✓ tidyr 1.1.3 ✓ stringr 1.4.0
✓ readr 2.0.1 ✓ forcats 0.5.1
── Conflicts ─────────────────────────────────────── tidyverse_conflicts() ──
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
可以看到加载了tidyverse中的子包,conflicts显示的是其他包的同名函数被屏蔽,dplyr::mutate()这种输入方式可以表明mutate()函数是来自于dplyr包中的,而且当dplyr中的mutate()函数被其他R包的同名函数屏蔽时,可以用这种方式调用。在rstudio环境下输入函数或者对象时,可以多按Tab键,用来补齐函数或对象名,提高输入效率。
需要的数据集
有很多R包自带数据集,也有些数据集被写成R包供下载,这里需要的有:
代码语言:javascript复制> install.packages(c("nycflights13", "gapminder", "Lahman"))
准备好R包和数据,就可以进行数据分析实战了,下节开始跟练数据可视化。
参考资料:
https://r4ds.had.co.nz/index.html