基于Linux和 R 的数据分析流程

学术   健康   2024-10-04 16:00   浙江  

R的数据对象包括向量,矩阵,数组,因子,数据框,因子和列表等。在数据分析过程中,先要通过 R 读取数据,再进行处理。无论是自测数据,还是公开的高通量测序数据,我们都可以用 R 和 Linux、Python等来完成分析和可视化。

基于Linux和R的高通量测序数据分析流程:①测序数据下载SRA Toolkit;②数据质控与过滤fastp;③序列比对SAMtools、HISAT2;④序列组装StringTie、TACO;⑤表达定量和差异表达分析Salmon、DESeq2及富集分析clusterProfiler等。

向量(Vector)是用于存储数值型、字符型和逻辑型数据的一位数组,用函数c ()来创建。个人理解,c是英语单词“command”的首字母,可以理解为我们中学数据解题时候的“令”。这种类型的数据是我们入门R数据结构的基础。
####----向量Vector是一维数据----####
a <- c(1, 2, 5, 3, 6, -2, 4) #数值型,直接输入,不用双引号b <- c("one", "two", "three", "ten") #字符型,有双引号c <- c(TRUE, TRUE, FALSE, TRUE, FALSE) #逻辑型,判断真假用的,属于逻辑判断## 只有一个元素的向量,叫做标量,用于保存常量,很少用到。d <- -3f <-"five"g <- TRUE
## 用方括号给定位置,从而访问向量中的元素a <- c(1, 2, 5, 3, 6, -2, 4) #数值型向量a中有7个元素a[3] #访问一个元素a[c(1, 3, 5)] #访问不连续的元素a[c(2:5)] #访问连续的元素
a <-c(1:20) #冒号用处大,可用于生成连续的数值变量

矩阵(Matrix)是二维数据,通过函数matrix ()创建。一个矩阵可以有多个元素,元素之间可以数据类型不同,但是一个元素只有一种类型,数值型、字符型和逻辑型均可。

#### ----矩阵Matrix是二维数据----####
## 一个矩阵可以有多个元素,元素之间可以数据类型不同,但是一个元素只有一种类型## matrix的一般使用格式:Matrix <- matrix(vector, nrow = number_of_rows, ncol = number_of_columns, byrow = logical_value,dimnames = list( char_vector_rownames, char_vector_colnames))
## vector指矩阵的向量元素,nrow和ncol指定行和列的维数## dimnames包含可选的、以字符型向量表示的行名和列名## byrow表明矩阵是按行填充(byrow=TRUE)还是按列填充(byrow=FALSE)
## 举例子Matrix1<-matrix(1:20, nrow = 5, ncol = 4) #创建一个5x4的简单矩阵
vector2 <- c(1,26,24,68,12, 100) #创建一个数值型向量rnames <- c("R1", "R2", "R3") #行的命名cnames <- c("C1", "C2") #列的命名Matrix2 <- matrix(vector2, nrow = 3, ncol = 2, byrow = TRUE, dimnames = list(rnames,cnames)) #按行填充的3x2矩阵
Matrix3 <- matrix(vector2, nrow = 3, ncol = 2, byrow = FALSE, dimnames = list(rnames,cnames)) #按列填充的3x2矩阵
## 同样,用下标和方括号可以给定位置,从而访问向量中的元素
x<-matrix(1:20, nrow = 5) #创建一个名称为“x"的5x4简单矩阵x #展示x矩阵的数据x[2,] #访问x矩阵的第2行x[,2] #访问x矩阵的第2列x[2,2] #访问x矩阵的第2行,第2列x[1,c(2,3)] #访问第1行的第2列和第3列
数组(Array)是由相同类型元素集合组成的一种数据结构,数据可以是二维,也可以是二维及其以上(多维)。数组通过函数array ()来创建。
####----数组Array是多维数据(二维及其以上)---####
## array的一般使用格式:Array <- array (vector, dimensions, dimnames)## vector包含数组中的数据,dimensions是一个数值型变量,给出各个维度下标的最大值## dimnames是可选的、各维度标签的列表## 数组与矩阵类似,只是处理的行、列数增多而已
## 举例子dim1 <- c("A1", "A2", "A3", "A4")dim2 <- c("b1", "b2", "b3")dim3 <- c("C1", "C2")y <- array(1:36, c(4,3,2), dimnames = list(dim1,dim2,dim3)) #创建数组y #展示数组的数据
## 跟矩阵一样,可以用下标和方括号给定位置,访问向量中的元素


数据框(Dataframe)是在R中最常处理的数据结构。数据框可以处理不同列、不同数据结构(数值型、字符型等)的数据,与我们通常在SAS、SPSS和Stata中看到的数据类似。数据框通过函数data.frame ()来创建。

####----数据框Dataframe处理不同类型数据--####
## data.frame的一般使用格式:Dataframe <- data.frame(col1,col2,col3,...)## 列向量col1、col2、col3等可为任何类型(如字符型、逻辑性和数字型等)## 每一列的名称可以用函数names指定## 数据框每一列的数据必须唯一,但是可以将多个模式的不同列放到一起组成数据框
## 举例子patientID <- c(1,2,3,4)age <- c(15,34,28,52)diabetes <- c("Type1","Type2","Type1","Type1")status <- c("Poor", "Improved","Excellent","Poor")z <- data.frame(patientID, age, diabetes, status) #创建数据框z #展示数据框
## 数据框的数据如何访问?可以用下标的方法,但是很繁琐,不推荐## 推荐直接指明列名z$age         #直接范文z数据框的age变量

以上关于向量,矩阵、数组和数据框的内容,相对来说比较容易,能够应对数据比较少的情况,对于GEO芯片或者二代测序的高通量数据,上述数据类型就极不方便。因此,我们还需要掌握更高级的数据类型处理函数,比如因子(Factor)和列表(List)。


我们知道,变量分为连续型变量和非连续型变量。在R情境下,变量可以归结为有序型、连续型和名义型(在R中没有非连续型的说法)。有序型变量是一种顺序关系,不是数量关系;连续型变量可以是某范围内的任意值,同时表明数量和顺序;名义型变量没有顺序之分。在R中,所有有序型、连续型和名义型的变量,统称为因子(Factor)。因子在R中非常重要,因为它决定了数据分析和呈现的方式。
####----因子Factor处理不同变量--####
## 函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1...k]## 用一个由字符串组成的内部向量将映射到这些整数上## 对于字符型向量,因子的水平默认依字母顺序创建,也可以通过指定levels覆盖默认排序## 数值型变量可以用levels和labels来编码成因子
## 举例子patientID <- c(1,2,3,4)age <- c(15,34,28,52)diabetes <- c("Type1","Type2","Type1","Type1")status <- c("Poor", "Improved","Excellent","Poor") #以向量形式创建数据diabetes <- factor(status, ordered = TRUE)patientdata <-data.frame(patientID, age, diabetes, status)
str(patientdata)                                      #显示数据的结构
summary(patientdata)                                  #显示数据的统计概要


列表(List)是R语言中最复杂的数据类型,它包含不同类型的元素,可能是若干向量、矩阵、数据框,甚至其他列表的组合。使用list ()函数创建列表。对象可以是上述任何结构。

####----列表List处理任何数据--####
## 列表list()是最为复杂的数据类型,可以整合各种数据类型到单个对象下。## list的一般使用格式:List <-list(object1, object2, object3, ...)## 或者List2 <- list(name1=object1, name2=object2,...)
## 举例子g <- "Mango List"h <- c(25, 26, 18, 39)j <- matrix(1:10, nrow = 5)k <- c ("one", "two", "three")list1 <- list(title=g, ages=h, j, k) #创建列表list1                                  #显示列表$title #显示列表的成分$ages[[3]]list1[[2]]list1[["ages"]]                    


处理数据对象的函数


数学函数


统计函数


图形函数

plot()是R中为对象作图的一个泛型函数(输出根据绘制对象的类型) 。

par( )是修改图形参数的函数。


用于指定符号和线条类型的函数


pch指定的绘图符号类型


Ity指定的线条类型


用于指定颜色的函数


用于指定文本大小、字体的函数


坐标轴选项


算术运算符


逻辑运算符


日期格式


类型转换函数

芒果师兄聊生信
1.生信技能和基因编辑。2.论文发表和基金写作。3. 健康管理和医学科研资讯。4.幸福之路,读书,音乐和娱乐。
 最新文章