接着上一章讲,大家好.
我们知道矩阵是有行和列组成的二维数组,其中每一个元素都具有相同的数据类型。
矩阵的创建:
一般我们使用向量进行创建,比如matrix()函数:matrix(A,nrow=n)
#设定行数n,将向量A的元素逐个、按列填进矩阵;如若设定列数,则声明ncol=m,注意列和行一般声明一个即可。
要将元素按行填入矩阵,则增加声明byrow=TURE(若不声明,该参数默认为FALSE)
下面给出基本的矩阵运
函数 解释
+ 矩阵加
%*% 矩阵乘
dim() 以二维列向量形式,输出矩阵的行、列
t() 矩阵转置
det() 输出矩阵的行列式
solve() 输出方阵的逆矩阵
rowSums() 矩阵按行求和,并输出为列向量
colSums() 矩阵按列求和,并输出为列向量
rowMeans() 矩阵按行求平均值,并输出为列向量
colMean() 矩阵按列求平均值,并输出为列向量
下面我们实战一下具体的矩阵常见问题
选取矩阵元素或子矩阵
矩阵中选取某些行、某些列拼合成新矩阵:
A[M,N]
M:代表选取A中行的向量的序号,N代表选取A中列的向量的序号;当选取所有行或所有列的元素时,对应的相应序号可以不写。
> A<-matrix(1:9,nrow=3)
> A
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> A[2,2] # 选取A中第2行第2列的元素
[1] 5
> A[c(1,2),c(1,2)] # 选取A中第1、2行与第1、2列的元素
[,1] [,2]
[1,] 1 4
[2,] 2 5
> A[c(1,3),c(1,3)] # 选取A中第1、3行与第1、3列的元素
[,1] [,2]
[1,] 1 7
[2,] 3 9
> A[c(1,2),] # 选取A中第1、2行元素与所有列的元素
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
> A[,c(2,3)] # 选取A中所有行与第2、3列的元素
[,1] [,2]
[1,] 4 7
[2,] 5 8
[3,] 6 9
数组:
具有至少3个维度的数据结构,各个维度下的维度值保存为一列向量,称为数组的维度(dim)
数组的创建:
从向量生成数组
array(A,dim=B)
A用于填充数组元素的向量,B声明数组的维度
> A=array(1:24,dim=c(3,4,2))
# c(3,4,2)表示这是一个3维数组,每1维的长度为3、4、2
> A
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
, , 2
[,1] [,2] [,3] [,4]
[1,] 13 16 19 22
[2,] 14 17 20 23
[3,] 15 18 21 24
列表:R语言中的列表
首先,列表是最为灵活的数据结构,可以是任意形式的对象的混合组成;其次,可以通过list()函数来新建列表
;最后,很多函数的返回结果已列表形式存储。
那list()函数是怎么创建的呢
例如:A<-1;B<-"huawei";C<-matrix(1:9,nrow=3);
E=list(A,B,C,D)
然后通过[[1]] 来列举。
怎么引用列表中的对象呢
通过列表名$列表名对象的方法来引用
E$A
数据框:
数据框是一个特殊的列表,呈现出行和列的二维结构
其中,列代表指标或属性,行代表个案、记录或一个预测等
是结构化的数据的基本呈现形式。
使用的是data.frame()建立数据框
eg:
ID<-1:5
sex<-(1,2,1,1,1)
age<-(18,31,25,29,24)
sex.f<-factor(sex,level=c(1,2),labels=c("Male","Female"))
M<-data.frame(ID,sex.f,age)
调用数据框可以采用列表的形式。
R语言,python和Matlab数据类型和数据结构辨析(2)
原文:https://www.cnblogs.com/Chonggmll2025/p/14539487.html