R语言初级教程(15): 矩阵(下篇)

Python020

R语言初级教程(15): 矩阵(下篇),第1张

这是最后一篇讲解有关矩阵操作的博客,介绍有关矩阵的函数,主要有 rowSums() , colSums() , rowMeans() , colMeans() , apply() , rbind() , cbind() , row() , col() , rowsum() , aggregate() , sweep() , max.col() 。

下面通过例子来了解这些函数的用法:

我们知道,通过下标索引 [i, j] 可以访问矩阵的某一部分,索引如果没有提供意味着“所有行”或“所有列”。来看个例子,比如:

在R中,可以用一些特殊的函数来进行矩阵的行、列计算。来看些例子:

上述矩阵的行、列计算,还可以使用 apply() 函数来实现。 apply() 函数的原型为 apply(X, MARGIN, FUN, ...) ,其中: X 为矩阵或数组; MARGIN 用来指定是对行运算还是对列运算, MARGIN=1 表示对行运算, MARGIN=2 表示对列运算; FUN 用来指定运算函数; ... 用来指定 FUN 中需要的其它参数。来看些例子:

用 apply() 函数来实现上面的例子

apply() 函数功能很强大,我们可以对矩阵的行或列进行其它运算,例如:

如果矩阵存在 NA 值,可通过设置 na.rm=TRUE 来忽略 NA 值,然后再计算。比如:

甚至我们还可以自定义运算函数,来看个例子:

在R中, rbind() 和 cbind() 函数可分别为矩阵添加行和列,来看一个例子:

在R中, row() 和 col() 函数将分别返回元素的行和列下标矩阵,来看个例子:

通过这两个函数,可以获取矩阵的对角元素以及上下三角矩阵,例如:

有时,你可能需要对每行进行分组,然后组内每列求和。在R中可以用 rowsum() 函数来解决,而且效率也非常高。先看个例子:

你也可以用 aggregate() 函数获得类似结果:

有人就会问“为啥没有列分组求和的操作?”,其实你可以先将矩阵转置,然后行分组求和;这两步就等同于列分组求和。

sweep() 函数的原型为 sweep(x, MARGIN, STATS, FUN = "-", check.margin = TRUE, ...) ,其中: x 为矩阵或数组; MARGIN 用来指定是对行运算还是对列运算, MARGIN=1 表示对行运算, MARGIN=2 表示对列运算; STATS 表示想要清除的统计量; FUN 用来指定运算函数,默认为减法 - ; check.margin 用来核实 x 的维度是否与 STATS 的匹配,如果事先知道它们匹配的话,将其设为 FALSE 将提高运算速度; ... 用来指定 FUN 中需要的其它参数。来看些例子:

事实上,通过改变 FUN 参数的具体形式或自定义函数, sweep() 函数可以实现很多不同操作,这里就不细讲了。

max.col() 函数返回矩阵每行最大值所在的列位置(即列下标),其原型为 max.col(m, ties.method = c("random", "first", "last")) ,其中: m 为矩阵;当存在多个最大值时, ties.method 指定用哪种方式来处理这种情况,默认为"random"(随机),"first"指使用第一个最大值,"last"指使用最后一个最大值。来看个官网例子:

我们也可以结合 apply() 和 which.max() 函数来实现 max.col(mm, 'first') 。看个例子,

R矩阵的最后一部分内容就讲到这。

如若有遗漏,后期将会添加至本博客。

零基础想要学习大数据,讲真,真的还是一件困难的事,不过人生就是这样,只有你越过更大的困难,才知道自己会有更大的收获。就像现在的大数据行业,人人都说大数据行业好,薪资高,但是你看到过每一个学习大数据的学生为此付出的惨痛经历吗?你看到过大数据工程师曾经日夜苦读、钻研书籍和教程吗?付出不一定有回报,但不付出一定不会有回报,想要更大的收获,先来收下这波大数据书籍和视频教程吧!

一、大数据书籍推荐:

1、《为数据而生》

书中分别阐述在大数据1.0、大数据2.0和大数据3.0时代下,相对应的数据分析需要做到分析、外化、集成。

2、《智能时代》

这本书作者分七章从不同角度对大数据进行介绍,分别以技术和思维方式的改变为主线,从工业革命这个角度嵌入,顺理成章的延伸出大数据与智能化,但是没有将过多笔墨放在技术的深究上,而是选择从应用层面体现大数据的理念。大数据应用则会渗透到各行各业,这正是作者的用心之处。

3、《R语言预测实战》

R语言横跨了金融、生物、医学、互联网等多个领域,主要用于统计、建模及可视化。由于上手快、效率高,备受技术人员青睐。预测是大数据挖掘的主要作用之一,借助R语言来做大数据预测,可以兼具效率与价值于一身。

3、《数据之巅》

这本书中,从小数据时代到大数据的崛起,作者以宏大的历史观、文化观、大数据观,给我们描绘了一幅数据科学、智慧文化的全景图。

4、《Hadoop权威指南》

《Hadoop权威指南(中文版)》从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具。

5、《Hive编程指南》

《Hive编程指南》是一本Apache Hive的编程指南,旨在介绍如何使用Hive的SQL方法HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大数据集合。

大数据视频教程

对于零基础想学大数据的同学,小编不建议你一上来就接触大数据,你和大数据的近距离接触还有一个门槛,那就是编程语言的学习,学习大数据的首要纲领,就是熟练掌握一门编程语言。小编咨询了千锋大数据讲师,当前大数据所运用的编程语言基本都是java,也会涉及到Python、Scala编程语言,所以先从掌握一门编程语言学起吧!

java全套视频教程总目录

python最新基础视频教程

进行完大数据编程语言的学习,这时候你就可以真正的接触大数据技术知识了,我们知道大数据以Hadoop、spark、storm等核心技术组成,自然也会以此为重点突破。

大数据教程:Spark基础及源码分析

大数据课程:hadoop生态圈视频