从零开始入门R语言编程

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

R语言编程入门

写在前面的

上期推文介绍了如何使用R语言编程进行样本间相关性分析,主要涉及了R语言矩阵、循环、统计分析函数、ggplot2、corrplot等函数包的使用,涉及的知识面较多,如果不是经常做生物信息或者是编程出家,很难在短时间内适应编程模式。其实,一旦适应了编程,很多问题都能轻松迎刃而解。毕竟计算机语言也是一门语言,和人与人之间打交道一样,人与计算机打交道也是很容易的。本次推文以引导大家入门R语言编程为目的,用尽可能精炼的内容教学R语言。认识R语言首先认识R语言的数据类型及控制结构。掌握这些基础以后,再认识R语言的函数包。经过一定时间的练习就可以熟悉R语言了。

R语言数据类型1:向量

向量是R语言最基本的数据类型。R语言中向量和大学时候学的线性代数一样,是由一行或者一列数据组成的变量。


R语言数据类型2:矩阵

R语言矩阵可以理解为多个长度相同的向量按照行或列排列而成的多维向量,R语言矩阵与线性代数中的矩阵稍有不同,不同点在于矩阵的乘法计算上,线性代数中矩阵乘法计算方法为设A为 mxp 的矩阵,B为 pxn 的矩阵,那么称 mxn 的矩阵C为矩阵A与B的乘积,其中矩阵C中的第 i行第 j列元素可以表示为
从零开始入门R语言编程
但是R语言中矩阵乘法是对应元素做乘积。举例为


R语言数据类型3:列表

列表是一种特殊的向量,不同之前的向量。之前的向量可以理解为原子型,列表中可以保存为不同格式的数据。可以是字符串型、数值型等。举例为


R语言数据类型4:数据框

数据框与矩阵有很多相似之处,很多矩阵适用的函数数据框同样适用。与矩阵不同的是,数据框里面的数据类型可以不一致,但矩阵维数必须相等,即各列数据长度相等。以一个实例简单介绍数据框

a<-c("apple","pen")
b<-c(17,14)

R语言数据类型5:因子

因子在实际的数据分析中用到的场合不多。在R语言中,因子(factor)表示的是一个符号一个编号或者一个等级。以一个实际例子让读者理解因子。

x<-c(100,1,4,9,1320)

从例子中可以看出,因子实际是为向量数据中的每一个元素赋予一个级别。例如元素100,它对应的level是100,比第二个元素1对应的level大,所以在level的排序上,100在第三个level上。

R语言控制结构

常用的两种控制结构为判断和循环,简单地说掌握了基本控制结构和R语言的数据类型是可以进行数据分析的,毕竟任何一种编程语言只要掌握了语法,剩下的就看个人的数学与逻辑素养了。

1.判断结构:通常为if(条件){命令}else{命令}类型,也有if…else if…else。也可以只有一个if。举例介绍判断结构语法,输入一个数,如果它大于等于10,输出Y,如果大于等于5小于10输出T,否则输出N

x<-6
if(x>=10){print("Y")}else if(x<10 && x>=5){print("T")}else{print("N")}

2.循环结构:R语言中for循环使用较多,通常结构为for(条件){命令}。以简单例子举例for循环语法,定义一个数值向量,将向量中每个元素的平方赋值给新向量。

x<-c(1:9)
y<-NULL
for (i in 1:length(x)) {
   y<-c(y,(x[i])^2)
}
print(y)
[1]  1  4  9 16 25 36 49 64 81

综合运用R语言编程

以上是R语言编程入门最基本的语法,只有逐渐熟悉这些语法,才可以更进一步使用R语言,下面以上次推文的数据为例子,为大家讲一下如何综合运用R语言知识。上次的推文中是利用RNA-seq的reads count数据计算样本间的重复性分析。另外小明师兄的上篇推文RNA-seq中的那些统计学问题(一)为什么是负二项分布,这篇推文从统计学角度出发推理论证了RNA-seq的reads count数据为什么符合负二项分布,下面我们从R语言编程开始利用实际RNA-seq的readscount数据证明一下为什么是负二项分布

根据负二项分布的性质,均值和方差为
从零开始入门R语言编程

将P用U表示并带入方差表达式得到


根据数学知识可以看出方差是均值的二次函数。所以我们这次综合利用R语言编程的知识进行证明。

从图片中看出,尽管过滤掉部分数据后还是存在个别极端数据,总体的数据分布曲线满足二次函数分布。

小结

理解R语言编程的五个数据结构:向量、矩阵、列表、数据框、因子,以及两种控制结构,循环和判断。

参考资料

《R in action》

从零开始入门R语言编程》来自互联网公开内容,收录仅供学习使用,如侵权请联系删除。本文URL:https://www.ezixuan.com/1020472.html

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