banner

R语言教程 Lesson 3 R语言多维数据类型

  • Home
  • R语言教程
Scroll down
TIP

这些是本篇文章的标签,来发现更多感兴趣的内容吧
科研
R语言
生信分析

来源:BV1td4y1r7mL 人话R语言教程

R多维数据类型简介

  • 向量Vector:线性的数据类型
  • 矩阵matrix:有行row和列column组成
  • Data Frame/Table:直接用来处理统计学数据,每一列代指一个变量,一行代表了一个样本
  • 阵列Array:可以理解为矩阵Matrix的扩展,一般来说用的比较少
  • List:前面各种数据的组合形式

向量Vector

Vector型变量的赋值

  • 对Vector型变量赋值,需要构建函数,c(a,b,c,….),其中括号外面的c是不能改变的
  • c(1:3)的效果和c(1,2,3)是一样的
  • 混合使用”,”和”:”:比如c(1,8:20)的效果和c(1,8,9,…,19,20)是一样的
  • 向量也可以通过混合变量来构建,比如c<-c(a,b)
  • 判定vector的长度:length()函数

对vector型变量取值

  • 变量名[ 要取的位数 ],其中方括号内可以是值,可以是numeric变量,可以是向量,也可以是另一个数值型vector变量
  • 举例:
    • 取一个值:d[3]或者d[a],其中a是一个简单
    • 如果想取两个或以上,要在方括号内放向量,例如d[c(2,4)],不能d[2,4],因为d[2,4]是用来取matrix/dataframe格式的变量的

Vector的值的替换

  • 举例:d<-(1,2,3,4),那么d[3]=3
  • 如果想要替换一个值,那么可以令d[3] <- 6
  • 如果想要替换两个或以上,同样地,要在方括号内放向量,后面的赋值也要对应地赋向量,例如d[c(1,2,4)] <- c(3,3,3),嵌套变量也是可以的,例如c <- c(1,2) d[c] <- c(1,2)
  • 如果要判断嵌套的变量/函数的长度,可以使用length()函数,例如length(d[c]),输出的结果是2
  • Vector通过logical取值
    • 举例:d<-c(1,2,3,4)
    • d[c(T,F,T,F)],这个函数会取出所有T的位数的值,替换值也是一样的道理
    • 在使用logical对vector取值时,有特殊的要求,[]内的向量的长度,要和括号外的向量的length一样

矩阵Matrix

Matrix型变量的赋值

  • 赋值使用的函数就是matrix本身,举例matrix1<-matrix(,…,,)
  • 函数中要填入的第一个变量必须是一个vector,比如c(1:50)
  • 然后需要指定第二个变量,是矩阵的行的数量,用nrow=一个数字来表示,比如nrow=5
  • 第三个变量是可选的,byrow=TRUE或FALSE,默认为FALSE,也就是说如果byrow=true,那么数据是按照行递增的,例如下图2是没有byrow=False的,下图三byrow=True


  • matrix也可以用含有vector的变量来赋值,比如a100<-(1:100),matrix3<-matrix(a100,nrow=10)

matrix型变量的取值

  • 取一个值:变量[要取的行,要取的列],比如matrix1[1,2]
  • 取同一行/列的n个值:变量[要取的n行/同一行,要取的n列/同一列]
  • 当然,[]中的内容用对应种类的变量来替代是可以的
  • 还可以用length函数看看能取出多少个值,以及用赋值的方式改变它们的值
  • 取多行多列(取出来的也是个matrix),也可以替换,当然要用对应类型的值来替换,举例:matrix[1:3,2:3]<-matrix(c(1:6),nrow=3)
  • 如果取值时我们在某一个区域不填写,则说明这个区域的全部都要,比如说matrix[,2:3],表示的含义是只要2-3列的内容
  • 要确定一个matrix,或者从一个matrix中取出一个matrix的行,或者是列的数量,我们可以用nrow函数(行)和ncol函数(列),示例:nrow(matrix3[1:3,2:3]),nrow(matrix3[1:3,2:3])
  • 如果要通过logic取值,那我们也需要通过构建和matrix的行,和/或列一样长的,由logical型变量组成的matrix,其中T表示取,F表示不取

matrix的运算

  • 简单的:matrix的每个值都做一样的处理,比如matrix3+1,就是matrix中所有的值都+1,用”+””-“” * “”/“都是可以的
  • matrix与vector相乘
    • 对matrix的要求:ncol(matrix)=length vector
    • 相乘的语法:matrix的第n行的每个值,都会乘上vector中的第n个值
  • matrix与matrix之间的运算
    • 要求:nrow(matrix1)=nrow(matrix2),ncol(matrix1)=ncol(matrix2)
  • 求某一matrix中所有值的和:用sum()函数
  • 求某一matrix中某一行/列的所有值的和:用apply()函数
    • apply()函数语法:(matrix变量的名字,1/2,要做的操作)
    • 1——对行操作;2——对列操作
Other Articles
Article table of contents TOP
  1. 1. R多维数据类型简介
  2. 2. 向量Vector
    1. 2.1. Vector型变量的赋值
    2. 2.2. 对vector型变量取值
    3. 2.3. Vector的值的替换
  3. 3. 矩阵Matrix
    1. 3.1. Matrix型变量的赋值
    2. 3.2. matrix型变量的取值
    3. 3.3. matrix的运算
Find Something Special?