R语言 您所在的位置:网站首页 r语言向量相加 R语言

R语言

2024-07-16 11:32| 来源: 网络整理| 查看: 265

目录

一、矩阵

1.1 建立矩阵

​1.2 认识矩阵的属性

1.3 将向量组成矩阵

二、取得矩阵元素的值

2.1 矩阵元素的取得

2.2 使用负索引取得矩阵元素

 三、修改矩阵的元素值

 四、降低矩阵的维度

 五、矩阵的行名和列名

5.1 取得和修改矩阵对象的行名和列名

5.2 dimnames()函数

六、将行名或列名作为索引

七、矩阵的运算

7.1 矩阵与一般常数的四则运算

7.2 行和列的计算

7.3 转置矩阵

7.4 %*%矩阵相乘

7.5 diag()函数

7.6 solve()函数

7.7 det()函数

八、三维或高维数组

8.1建立三维数组

 8.2 idential()函数

8.3 取得三维数组的元素

九、再谈class()函数

一、矩阵 1.1 建立矩阵

建立矩阵可使用matrix()函数,格式如下:

matrix(data,nrow=,ncol=,byrow=logical,dimnames=NULL)

data:数据。

nrow:预计行的数量。

ncol:预计列的数量。

byrow:逻辑值,预设是FALSE,表示先按列填数据,第1列填满再填第2列,其他依此类推,因此,若先先列则可省略此参数。如果该值是TRUE则按行填数据,即第1行填满再填第2行,其他依此类推。

dimnames:矩阵的属性,即行名和列名。

 1.2 认识矩阵的属性

str()函数可以查看矩阵对象的结构。

使用nrow()函数可以得到矩阵的行数。

使用ncol()函数可以得到矩阵的列数。

使用dim()函数可以得到矩阵对象的行数和列数。

此外,length()函数也可以用于取得矩阵或三维数组或多维数组对象的元素个数。

is.matrix()函数而可用于检查对象是否是矩阵。

is.array()函数可用于检查对象是都是数组。

1.3 将向量组成矩阵

R语言提供的rbind()函数可将两个或多个向量组成矩阵,每个向量各自占用一行。

cbind()函数可将两个或多个向量组成矩阵,功能类似于rbind()。不过,它是以每个向量各占一列的方式来组织向量的。

二、取得矩阵元素的值 2.1 矩阵元素的取得

当某一索引被省略时,则代表该维度的行或列均必须被计算在内。

 

2.2 使用负索引取得矩阵元素

对于矩阵,使用负索引,相当于拿掉负索引所指的行或列。

 三、修改矩阵的元素值

 

 四、降低矩阵的维度

使用负索引取得矩阵的部分元素时,如果所取得的部分元素仅有一行或一列,那么R语言将自动降低对象维度,使其从矩阵对象变向量对象。

其实,如果舍弃一个矩阵对象的某个元素,那么整个矩阵对象也将降为向量对象。

假设有数行或数列的矩阵,其部分元素被舍弃,只剩一行或一列时,如果仍希望此对象以矩阵方式呈现,可增加“drop=FALSE"参数。

 五、矩阵的行名和列名

下面的矩阵没有行名和列名。

5.1 取得和修改矩阵对象的行名和列名

rownames()函数可以取得和修改矩阵对象的行名。

colnames()函数可以取得和修改矩阵对象的列名。

如果我们想要把整个列名或行名删除,那么只要将整个列名或行名设为NULL即可。

 

 5.2 dimnames()函数

行名和列名事实上是存在于dimnames的属性种,去哦们可以使用dimnames()函数取得和修改这个属性值。

六、将行名或列名作为索引

R语言的重要特色是,当一个矩阵有了行名和列名后,可以用这些名称来代替数字型的索引,取得矩阵对象的元素,让整个程序的可读性更高。

 

七、矩阵的运算 7.1 矩阵与一般常数的四则运算

当碰上矩阵对象与一般常数的运算时,只要将各个元素与该常数分别执行运算即可。

两个矩阵能进行四则运算的先决条件是它们彼此的维度相同,否则会出现错误信息。有意思的是,R语言是允许矩阵对象和向量对象相加的,只要矩阵的行数与向量长度相同即可。 

 

 如果矩阵的列数与向量长度相同,也可以进行加法运算,但一般不常用。

注:

"\times "乘号是对单一元素逐步操作的,如果是要计算矩阵的内积,则需使用另一个特殊的矩阵相乘符号"%\times %"

7.2 行和列的计算

rowSums():计算行种元素的总和。

colSums():计算列种元素的总和。

rowMeans():计算行中元素的平均值。

colMeans():计算列中元素的平均值。

 

7.3 转置矩阵

t()函数可执行矩阵转置,转置矩阵后,矩阵的行列元素将互相对调。

7.4 %*%矩阵相乘

矩阵对象相乘的运算基本上和数学矩阵相乘是一样的。

 

7.5 diag()函数

diag()函数很灵活,当第一个参数是矩阵时,可传回对角线的向量值。

diag()函数的另一个用法是传回矩阵,此矩阵对角线是使用第一个参数的向量值,其余填0。该命令格式如下所示。

diag(x,nrow,ncol)

其中x是向量,nrow是矩阵行数,ncol是矩阵列数。若省略nrow和ncol,则用x向量元素个数(假设是n)建立n行n列矩阵。

7.6 solve()函数

使用solve()这个函数可传回反矩阵,使用这个函数时要小心,有时会碰上小数被舍弃的问题。

 

7.7 det()函数

det是指数学中的行列式,这个函数可以计算矩阵的行列式值。

 

八、三维或高维数组 8.1建立三维数组

array()函数可用于建立三维数组。

我们也可以使用dim()函数建立三维数组,方法是将一个向量,利用dim()函数转成三维数组。

 

 8.2 idential()函数

identical()函数主要用于比较两个对象是否完全相同。

 8.3 取得三维数组的元素

由上述结果可以发现,初始first.3array为数组对象,经筛选后,变成矩阵。如果期待筛选完,对象仍是三维数组,那么可加上参数“drop=FALSE"。

 

 降维后,第1个表格的数据以列优先方式先填充,第2个表格再依次填充。

九、再谈class()函数

 

 如果class()函数放入的参数是变量(例如矩阵)的特定元素,则将显示该元素的数据类型。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有