R-数据结构

时间:2023-03-10 06:28:55
R-数据结构

目录

  


数据类型

数据结构

R-数据结构

  •  向量
    • 用于存储数值型、字符型或逻辑型数据的一维数组
    • 单个向量中数据必须拥有相同的类型或者模式(数值型、字符型或逻辑型)
    • 创建向量
    • # c()创建向量
      x <- c(10,11,13,14)
      
      # : 创建向量
      x <- 1:10
      
      # seq(from, to, by, length.out, along.with)
      # seq(from, to, by, length, along)
      # 从5开始,间隔为2,长度为8
      x <- seq(5, by=2, length=8)
      
      # 从10开始,间隔为3,长度与x相同(8)
      y <- seq(10, by=3, along= x)
    • 提取子集
      > a <- c(1,2,5,3,6,-2,4)
      [1]  1  2  5  3  6 -2  4
      
      > a[3]
      [1] 5
      
      > a[c(1,3,5)]
      [1] 1 5 6
      
      > a[2:6]
      [1]  2  5  3  6 -2
  • 矩阵
    • 二维数组,每个元素都拥有相同的模式(数值型、字符型或逻辑型)
    • 创建矩阵matrix
      • mymatrix <- matrix(vector,  nrow=num,  ncol=num,  byrow=TRUE/FALSE,  dimnames=list(rnames,cnames))
    • # 创建一个5X4的矩阵
      > y <- matrix(1:20, nrow=5, ncol=4)
      > y
           [,1] [,2] [,3] [,4]
      [1,]    1    6   11   16
      [2,]    2    7   12   17
      [3,]    3    8   13   18
      [4,]    4    9   14   19
      [5,]    5   10   15   20
      
      > cells <- c(1,26,24,68)
      > rnames <- c("R1","R2")
      > cnames <- c("C1","C2")
      
      # 按行填充的2X2矩阵
      > mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames=list(rnames,cnames))
      > mymatrix
         C1 C2
      R1  1 26
      R2 24 68
      
      # 按列填充的2X2矩阵
      > mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=FALSE, dimnames=list(rnames,cnames))
      > mymatrix
         C1 C2
      R1  1 24
      R2 26 68
    • 提取子集
      > x <- matrix(1:10, nrow=2)
      > x
           [,1] [,2] [,3] [,4] [,5]
      [1,]    1    3    5    7    9
      [2,]    2    4    6    8   10
      
      # 0是indexs和columns
      > x[0,]
           [,1] [,2] [,3] [,4] [,5]
      > x[,0]
      
      [1,]
      [2,]
      
      # 所以提取值的序列是1开始
      > x[2,]
      [1]  2  4  6  8 10
      > x[,2]
      [1] 3 4
      
      > x[1,c(2,3)]
      [1] 3 5 
  • 数组
    • 数组与矩阵类似,但维度可以大于2(同样:每个元素都拥有相同的模式)
  • 创建数据:myarray <- array(vector,  dimensions,  dimnames)
      • vector:数组中的数据(相同模式)
      • dimensions:一个数值型向量,给出各个维度下标的最大值
      • dimnames:可选,各维度名称标签的列表
    • > dim1 <- c("A1","A2","A3","A4")
      > dim2 <- c("B1","B2","B3")
      > dim3 <- c("C1","C2")
      #创建三维数组
      > z <- array(1:24, c(4,3,2), dimnames=list(dim1,dim2,dim3))
      > z
      , , C1
      
         B1 B2 B3
      A1  1  5  9
      A2  2  6 10
      A3  3  7 11
      A4  4  8 12
      
      , , C2
      
         B1 B2 B3
      A1 13 17 21
      A2 14 18 22
      A3 15 19 23
      A4 16 20 24
    • 提取子集:与矩阵相同
  • 数据框
    • 包含不同模式(数值型、字符型等)的数据,最常规(有用)的表格
    • 创建数据框:mydata <- data.frame(col1,col2,col3,...)
      > patientID <- c(1,2,3,4)
      > age <- c(25,34,28,52)
      > diabetes <- c("Type1","Type2","Type3","Type4")
      > status <- c("Poor","Improved","Excellent","Poor")
      
      > patientdata <- data.frame(patientID, age, diabetes, status)
      > patientdata
        patientID age diabetes    status
      1         1  25    Type1      Poor
      2         2  34    Type2  Improved
      3         3  28    Type3 Excellent
      4         4  52    Type4      Poor
    • 提取子集
  • 列表

  • 因子