R是现今最受欢迎的数据分析和可视化平台之一。它是自由的开源软件,并同时提供Windows、Mac OS X和Linux系统的版本。在接下来的时间,我将把掌握、精通这个软件所需的技能学习过程以系列文章的形式发表,记录我的学习过程,供大家参考,一起有效地使用它分析自己的数据。工欲善其事必先利其器,学习R语言数据分析,第一步自然是R安转。R可以在CRAN上免费下载,安装过程可以参考我前面的视频教程
1. windows下安装R和Rstudio
2. mac下安装R和Rstudio
3. 单细胞数据分析相关R包安装
一、R的使用
R是一种区分大小写的解释型语言。你可以在命令提示符(>)后每次输入并执行一条命令,或者一次性执行写在脚本文件中的一组命令 。
R语句由函数和赋值构成。R使用<-,而不是传统的=作为赋值符号。
学习一门语言,一定要学会查看帮助文档。R提供了大量的帮助功能,学会如何使用这些帮助文档可以在相当程度上助力编程工作 。
包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。计算机上存储包的目录称为库(library) 。函数 .libPaths() 能够显示库所在的位置, 函数 library() 则可以显示库中有哪些包。
有许多R函数可以用来管理包。第一次安装一个包,使用命令install.packages()即可。也可以参考视频教程单细胞数据分析相关R包安装。例如,包gclus中提供了创建增强型散点图的函数。可以使用命令install.packages("gclus")来下载和安装它。
包的安装是指从某个CRAN镜像站点下载它并将其放入库中的过程。要在R会话中使用它,还需要使用library()命令载入这个包。例如,要使用gclus包,执行命令library(gclus)即可。
二、R中的数据结构
数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。类似于数据库中的记录(record)和字段(field)。
R语言中的基本数据类型(模式)包括数值型、字符型、逻辑型(TRUE/FALSE)、复数型(虚数)和原生型(字节)。
R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。
我们接下来将逐个介绍这些数据结构。
1、向量 向量是用于存储数值型、字符型或逻辑型数据的一维数组,单个向量中的数据必须拥有相同的数据类型。执行组合功能的函数c()可用来创建向量(类似于编程语言中的一维数据 int[]、Object[]等,访问元素的方式和数组相同,使用下标从1开始)。
2、矩阵
矩阵是一个二维数组,只是每个元素都拥有相同的数据类型(数值型、字符型或逻辑型) 。可通过函数matrix()创建矩阵,阵中仅能包含一种数据类型 。
如上所示,创建了一个4行5列的矩阵,矩阵中的元素按照行填充,分表定义了行名、列名。
我们可以使用下标和方括号来选择矩阵中的行、 列或元素。X[i,]指矩阵X中的第i行, X[,j]指第j列, X[i, j]指第i行第j 个元素。选择多行或多列时,下标i和j可为数值型向量。
3 数组
数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建。其中vector包含了数组中的数据, dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames是可选的、各维度名称标签的列表。像矩阵一样,数组中的数据也只能拥有一种数据类型。
4、数据框
数据框可用来存储下图格式,不同的列可以包含不同的数据。数据框是R中最常处理的数据结构。数据框可通过函数data.frame()创建:mydata <- data.frame(col1, col2, col3,...)其中的列向量col1、 col2、 col3等可为任何类型(如字符型、数值型或逻辑型)。每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。
访问数据框中元素的方式有若干种。可以使用(如矩阵中的)下标记号,亦可直接指定列名,或是使用$符号,如下例:
5、因子
变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别变量。糖尿病类型Diabetes(Type1、 Type2)是名义型变量的一例。变量之间并没有先后顺序,只是表示不同类型。
有序型变量表示一种顺序关系。如上例中病情Status(poor、 improved、 excellent)是顺序型变量。病情为poor(较差)病人的状态不如improved(病情好转)的病人,但并不知道相差多少。
连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量。年龄Age就是一个连续型变量。
类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。类似于编程语言中的枚举类型。
函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1...k](其中k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。 举例,假设有向量: diabetes <- c("Type1", "Type2", "Type1", "Type1") 语句diabetes <- factor(diabetes)将此向量存储为(1, 2, 1, 1),并在内部将其关联为1=Type1和2=Type2 (具体赋值根据字母顺序而定)。
创建有序型变量,为factor()指定参数ordered=TRUE,通过指定levels选项来覆盖默认排序
6、列表
列表是一些对象的有序集合。列表允许整合若干(可能无关的)对象到单个对象名下。类似于编程语言中的类或是结构体。某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。可以使用函数list()创建列表:
mylist <- list(object1, object2, ...)
总结:
以上介绍了R语言中的基本数据类型和常用的数据结构,包括各种数据结构的创建和访问数据的方式,这些是存储数据的基础。便于我们后续进一步对数据进行分析处理