R语言怎么输入一个自定义矩阵?求R大神交流

Python0772

R语言怎么输入一个自定义矩阵?求R大神交流,第1张

1、先在R中创建简单的矩阵,取名为my_matrix

2、现在对每一行进行求和,要使用到apply函数。apply族函数有很多,在平常的使用中,用到最多的就是tapply函数,第一个参数x是数据;第二个参数index是索引,就比如是分组的标准,第三个参数fun也就是要用到的函数。

3、对于tapply函数调用R本身自带的数据airquality,现在计算按照Month来分组,每一个Month中Solar.R的均值

4、上图中Month等于5和8时,Solar.R的均值为NA,这说明在原数据中存在NA的情况。而且在指定数据的时候比较麻烦,可以使用with函数来简化代码量

5、矩阵与矩阵之间的运算,比如加法,减法

6、矩阵相乘需要使用%*%符号

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

步骤如下:

主要介绍一下利用matrix函数和rep生成矩阵。

在R语言中可以使用matrix()函数来创建矩阵,其语法格式如下:

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

rep函数是R语言中重复操作的函数。

矩阵是可以看作一种特殊的向量的,它比向量多了两个附加属性,行数和列数,因此让它的复杂程度获得了提高。

向量作为R中的一种非常基础的数据类型,大家通过过去的学习一定已经彻底的掌握了。但是,这个世界上的数据是复杂多变的,我们只使用向量是无法表示更加复杂的数据情况。

我们在线性代数课上学过一种数学概念,矩阵。这个概念在为了统计学家开发的R语言中同样适用,并且只需要在基础环境中,我们可以具有很多对矩阵的操作方法。

( 由于R其实处理数据框较多,矩阵并不会讲很多的东西,如果非要使用矩阵,我其实还是更推荐去隔壁Python学习np和scipy )

任何数据类型学习的开始都是如何得到它,也就是如何创建它。矩阵也不例外,我们首要的 创建方式就是直接使用matrix函数进行创建 。而且其实说是创建矩阵,我们其实是在把一个向量转化为矩阵,

上面就是最基本的创建矩阵的方法了。我们 需要给matrix一个向量 (其实矩阵也可以,不过就会让你产生一些奇奇怪怪的误导,后面讲解了矩阵转向量的时候你就明白了),这个向量的内容就会成为创建的矩阵的内容。

然后跟着需要 指定你想创建的行数或者列数 ,这两个只需要指定其一即可,R会给我们计算另一个数字是几的,这样,我们就创建好了一个矩阵。

但是我们可以发现一个问题,我们创 建的矩阵是竖着一排排放的,这个叫做,****列优先原则 ,我们也可以通过指定参数 byrow,来让矩阵变成行优先

这就是行优先矩阵了,存储的内容都是一样的,就是行列优先顺序不同。

到这里你可能就会问了,R是不是只能创建方阵呢,普通的矩阵能不能创建呢?那当然可以了

我本人是习惯列优先进行存储的,所以我一般不指定byrow参数。

任何一种数据类型,我们对它最优先的操作学习,都是索引操作。任何一种结构的数据,我们存储它的目的都是为了使用,所以学习如果取到它的值,是非常重要的事情。

对矩阵的基本索引方式和向量非常相似,如果不了解向量的直接索引,布尔索引和连续索引,请看

由于有了上面的基础,所以我们先索引点简单的,然后做两个不一样的案例。矩阵和向量最大的区别再与矩阵具有两个维度,索引的时候需要两个位置

这里停一下,我们取第一行的所有列就已经是不同了,要注意, 当我们想取某一行的所有列,或者某列的所有行,或者当你想取所有的时候,把位置空出来 ,R就会自动给你取到所有。

说完了上面的,下面就都非常简单了

大家尤其要注意最后一种,取前两行和后两列的操作,很多时候这是非常有用的步骤,会减少你使用循环,提高程序的运行速度。

讲解完了索引,我们来讲一下如何矩阵的内容以及删除矩阵的行列。

其实修改特定位置的值非常简单,我们都已经找到了,修改就是一瞬间的事情,

除了单个值的修改,我们 还可以对索引到的行和列进行修改 ,一般来说,我们会直接把要修改的结果放进向量中,然后进行修改,但是如果修改的值不够长,也是可以操作的,如下

如果你对上面的内容表示有些困惑,那么你应该回忆一下,

这里有着你需要了解的一切。

最后讲解如何删除矩阵的行列,这里的操作也和向量是一样的,具体请回顾

本文的全部内容就到此结束了,这篇文章讲解了 最最基本的矩阵创建方法,以及对矩阵进行索引的操作,加上修改矩阵元素和删除矩阵的列等等 ,这些都是使用矩阵的基础知识,需要彻底掌握,才能在矩阵的使用中得心应手。

下一篇文章将会介绍矩阵维度,矩阵转化为向量以及矩阵的各种运算,矩阵的转置等内容。