📅  最后修改于: 2023-12-03 15:19:54.030000             🧑  作者: Mango
R是一个非常强大的统计分析工具,其中的矩阵与数据框都是非常常用的数据结构。本文将介绍如何在R中使用矩阵与数据框。
矩阵是一个二维的数据结构,每行代表一个观测值,每列代表一个变量。它们通常用于存储数值型数据。
我们可以使用matrix()
函数创建一个矩阵,该函数的语法如下:
matrix(data=NA, nrow=1, ncol=1, byrow=FALSE)
其中,data
参数是我们要存储在矩阵中的数据,可以是一个向量或列表;nrow
和ncol
分别表示生成矩阵的行数和列数;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),]