R语言是数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。R语言是解释运行的语言(与C语言的编译运行不同),它的执行速度比C语言慢得多,不利于优化。但它在语法层面提供了更加丰富的数据结构操作并且能够十分方便地输出文字和图形信息,所以它广泛应用于数学尤其是统计学领域。这也是大多数生信工作者选择R语言的原因。
3. 数据类型和数据结构
-
数据类型:数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式;
- R 语言中的最基本数据类型主要有三种:
- 数字
- 逻辑
- 文本
- R 语言中的最基本数据类型主要有三种:
a = 1
b <- TRUE
d = "abc"
class(a)
class(b)
class(d)
-
数据结构:
R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。图2-1给出了这些数据结构的一个示意图。
<img src=".\Figures\WechatIMG581.jpeg" alt="WechatIMG581" style="zoom:50%;" />
-
向量:
-
a <- c(1,2,5,3,6,-2,4) b <- c("one", "two", "three") d <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) # 由于R中内置了同名函数c(),最好不要在编码时使用c作为对象名,否则可能产生一些不易察觉的问题。
这里:a是数值型向量,b是字符型向量,而c是逻辑型向量。
注意:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型) 。同一向量中无法混杂不同模式的数据。
-
-
与向量相关的常用操作:
# 快速创建连续数列: a <- c(1:10) # seq函数创建数列: a <- seq(1,10,2) # seq(from = value1 ,to = value2 , by = step) # 重复函数rep: rep(x,times = value1) # 即表示将x重复value1次。
-
访问向量中的元素:
-
通过在方括号中给定元素所处位置的数值, 我们可以访问向量中的元素。
例如, a[c(2, 4)] 用于访问向量a中的第二个和第四个元素。
a <- c(1,2,5,3,6,-2,4) a[3] a[c(1,3,4)] a[2:6]
-
-
修改向量中的元素:
# 创建向量 x <- c(1,2,24) x # 修改向量中的元素 x[c(1,3)] <- c(23,43) x # 负号表示删除元素 x <- c(1:10) x[-(1:5)]
-
进阶:
- 字符型元素即用双引号括起来的元素,如"beautiful",“handsome”,“er”,诸如此类,这里我们主要讲一个paste函数,将字符型变量给合并成一个字符串,形式为:
paste(“variable1”,”variable2",…,sep=’ ',collapse=NULL) - 其中sep参数是指变量和变量之间的连接,默认为空字符,collapse参数是指合并过后的元素之间的连接,默认为空,
# 我们简单的举几个例子就很清晰了: a <- paste("a","b","c",1:3,sep = '') a b <- paste("a","b","c",1:3,sep = '+') b c <- paste("a","b","c",1:3,sep = '+',collapse = '----') c # 我们发现若是给定collapse一个参数就会变成一整个合并的字符串,默认的话就是一个一个合并过后地元素。可以看b和c的区别。
- 向量相关的运算:
# 取向量中最小最大的值: min() max() # 求的是取得最小(大)值的第几个分量 which.min() which.max() sum() # 求和 median() # 求中位数 prod() # 求积 var() # 方差、 mean() # 平均值等 sort() # 给x排序,默认递增 rev() # 倒序 order() # 给出递增的序列号 a[order(a)]
本期内容就到这里,喜欢的小伙伴还请帮忙点赞、关注和转发,你们的支持是我们更新的动力。
- 字符型元素即用双引号括起来的元素,如"beautiful",“handsome”,“er”,诸如此类,这里我们主要讲一个paste函数,将字符型变量给合并成一个字符串,形式为:
网友评论