📜  R中的矩阵与数据框(1)

📅  最后修改于: 2023-12-03 15:19:54.030000             🧑  作者: Mango

R中的矩阵与数据框

R是一个非常强大的统计分析工具,其中的矩阵与数据框都是非常常用的数据结构。本文将介绍如何在R中使用矩阵与数据框。

矩阵

矩阵是一个二维的数据结构,每行代表一个观测值,每列代表一个变量。它们通常用于存储数值型数据。

创建矩阵

我们可以使用matrix()函数创建一个矩阵,该函数的语法如下:

matrix(data=NA, nrow=1, ncol=1, byrow=FALSE)

其中,data参数是我们要存储在矩阵中的数据,可以是一个向量或列表;nrowncol分别表示生成矩阵的行数和列数;byrow表示填充矩阵的方式,当为TRUE时,按行填充,否则按列填充,默认为FALSE

# 创建一个3行3列的矩阵
matrix(1:9, nrow=3)

#   [,1] [,2] [,3]
# 1    1    4    7
# 2    2    5    8
# 3    3    6    9
访问矩阵元素

我们可以使用方括号来访问矩阵中的元素,其中第一个数字表示行,第二个数字表示列。

# 访问矩阵中的第2行第3列的元素
matrix(1:9, nrow=3)[2, 3]  # 8
矩阵运算

矩阵支持很多数学运算,例如加法、减法、乘法、转置等。

# 矩阵加法
m1 <- matrix(1:9, nrow=3)
m2 <- matrix(2:10, nrow=3)
m1 + m2

# 矩阵乘法
m1 %*% t(m2)

# 矩阵转置
t(m1)
数据框

数据框类似于Excel表格,它是一个二维的数据结构,每一列可以是不同的数据类型,例如字符型、数值型、逻辑型等。数据框通常用于存储实验数据。

创建数据框

我们可以使用data.frame()函数创建一个数据框,该函数的语法如下:

data.frame(..., row.names=NULL)

其中,...参数是我们要存储在数据框中的数据,可以是向量或列表;row.names表示数据框的行名,默认为NULL

# 创建一个包含姓名、性别、年龄的数据框
name <- c("Tom", "Jerry", "Mickey")
gender <- c("Male", "Male", "Female")
age <- c(20, 25, 30)
data.frame(name, gender, age)

#     name gender age
# 1    Tom   Male  20
# 2  Jerry   Male  25
# 3 Mickey Female  30
访问数据框元素

我们可以使用$[]来访问数据框中的元素。$用于访问列,[]用于访问行或列。

# 使用$
df <- data.frame(name, gender, age)
df$name  # "Tom" "Jerry" "Mickey"
df$age  # 20 25 30

# 使用[]
df[1,]  # "Tom" "Male" 20
df[, 2]  # "Male" "Male" "Female"
df[2:3, 1:2]  # "Jerry" "Male" "Mickey" "Female"
数据框运算

数据框支持很多运算,例如按列求和、按列取平均值、按列排序等。

# 按列求和
df <- data.frame(name, gender, age)
colSums(df[, 3])

# 按列取平均值
colMeans(df[, 3])

# 按列排序
df[order(df$age),]