4 数据基本结构

前面我们已经介绍过向量,它是R中最基本的数据结构,这章我们来认识一下R中其他几种常见的数据结构

  • 矩阵
  • 列表
  • 数据框

4.1 矩阵

矩阵可以存储行(row)和列(column)二维的数据。它实际上是向量的另一种表现形式,也就说它的本质还是向量,一维的向量用二维的方式呈现。
在R语言中通过matrix函数来创建矩阵:

matrix(c(2,4,6,3,7,8), nrow = 2, ncol = 3)
##      [,1] [,2] [,3]
## [1,]    2    6    7
## [2,]    4    3    8

默认矩阵的排列方向是按列从左往右排列,当然,也可以按行从上往下排列,只需要添加byrow参数即可:

matrix(c(2,4,6,3,7,8), nrow = 2, ncol = 3, byrow = TRUE)
##      [,1] [,2] [,3]
## [1,]    2    4    6
## [2,]    3    7    8

矩阵的相关属性如下:

m <- matrix(c(2,4,6,3,7,8), nrow = 2, ncol = 3)
class(m)
## [1] "matrix" "array"
## [1] 6
dim(m)#矩阵的维度
## [1] 2 3

个人理解:矩阵其实就是将一维的向量平铺开来,展示成二维的形式,所以矩阵中的元素全部是同一类型的。

4.2 列表

列表可以理解成多个向量的集合。
在R中可以使用list函数来创建列表:

list1 <- list(
  a = c(5, 10),
  b = c("I", "love", "R", "language", "!"),
  c = c(TRUE, TRUE, FALSE, TRUE)
)
list1
## $a
## [1]  5 10
## 
## $b
## [1] "I"        "love"     "R"        "language" "!"       
## 
## $c
## [1]  TRUE  TRUE FALSE  TRUE
异同 向量 列表
相同点 元素之间用逗号隔开 元素之间用逗号隔开
不同点 元素是单个值,每个元素的数据类型必须相同 元素可以是向量矩阵或者列表

列表的属性如下:

class(list1)
## [1] "list"
length(list1)
## [1] 3

4.3 数据框

数据框其实是一种特殊形式的列表,即如果列表中的元素是等长的向量那么这样的列表就是一个数据框。数据框类似于我们经常用的excel表格,由于数据框融合了向量、列表和矩阵的特性,所以在数据科学的统计建模和可视化中运用非常广泛。
在R中,使用data.frame函数来创建数据框:

df <- data.frame(
  name      = c("Alice", "Bob", "Carl", "Dave"),
  age       = c(23, 34, 23, 25),
  marriage  = c(TRUE, FALSE, TRUE, FALSE),
  color     = c("red", "blue", "orange", "purple")
)
df
##    name age marriage  color
## 1 Alice  23     TRUE    red
## 2   Bob  34    FALSE   blue
## 3  Carl  23     TRUE orange
## 4  Dave  25    FALSE purple

数据框的属性如下:

class(df)
## [1] "data.frame"
nrow(df)
## [1] 4
ncol(df)
## [1] 4

4.4 总结

  • 介绍了矩阵的定义,创建方法,属性
  • 介绍了列表的定义,创建方法,属性
  • 介绍了数据框的定义,创建方法,属性(重点)