生成 4行5列的数组,逐列逐行赋值
x = array(1:20, dim= c(4,5))

依据已知向量生成二维数组
i = array(c(1:3,3:1,4:6,5:7), dim=c(3,4))
也能够调整行列顺序 (3行4列变为4行3列)
i = array (c(1:3,3:1,4:6,7:9), dim=c(4,3))

数组a元素作为索引值操作数组b
i为一个二维数组,x[i]为x[i[1,1]],x[i[1,2]]...x[i[1,n]]...x[i[2,1]],x[i[2,2]]...x[i[n,n]]。比如
x[i] = 0 操作。就是将数组i中的元素取出为i[m,n],为x[i[m,n]]一一赋值。m∈[1,行数],n∈[1,列数]。

创建3*4矩阵。初始化每一个元素为0
b = matrix(0,3,4)

向矩阵最后加入一列
b = cbind(b,1:3)

向矩阵最后加入一行
a = matrix(c(1:9),3,3)
a = rbind(a,c(9,9,9))

将一个数组强制转换成简单向量
vec=as.vector(a)
或者
vec=c(a)

矩阵(向量)相乘
crossprod(1:5,2:6)

创建表格
table(c(1:4), c(2:5))

基于数据向量与维度创建数组
z=array(c(1,2,3), dim=c(2,3,4))
基于数据向量<1,2,3>创建4组,3列两行的表格

动态调整维度
z=array(c(1,2,3), dim=c(2,3,4))
dim(z) = c(2,2,6)
z变成了6组,2列2行的表格

数组操作
a=array(c(1,2),dim=c(3,4))
b = 2*a+1

求向量a,b外积的函数
outer(c(1,2,3),c(3,2,1))  (等价于c(1,2,3)%o%c(3,2,1))

过程:
a :<1,2,3>  
b :
<
3
2
1
>
向量a与b的外积:

1*3, 1*2, 1*1
2*3, 2*2, 2*1
3*3, 3*2, 3*1

还能够把外积函数替换为其它函数(比如平方和)
outer(x,y,function(x,y)x*x+y*y)

使用plot绘制函数
比如y=x^2
x=c(1:20)
plot(x,x*x)

矩阵旋转
a = matrix(c(1,2,3,4,5,6,7,8),2,4)
b = aperm(a,c(2,1))
过程:
a :
[1 3 5 7]
[2 4 6 8]
aperm(a, c(2,1)):
[1 2]
[3 4]
[5 6]
[7 8]
aperm(a)等价于t(a)

矩阵相乘
a = matrix(c(1,2,3,4,5,6,7,8),2,4)
b = matrix(c(2,2,2,2),4,1)
x = a %*% b
以上将完毕 2*4矩阵和4*1矩阵相乘

求方(矩)阵对角元素
a = matrix(c(1:9),3,3)
diag(a)
会取得 1,5,9

生成正太分布随机数
rnorm(10)

查看矩阵维数
a= matrix(c(1:4),2,2)
dim(a)
改变矩阵维
dim(a) = c(1,4)

求方阵的行列式的值
det(matrix(rnorm(9),3,3))

求值过程 (对角线展开):
[a(1,1), a(1,2), a(1,3)]
[a(2,1), a(2,2), a(2,3)]
[a(3,1), a(3,2), a(3,3)]
X = a(1,1)*a(2,2)*a(3,3)+a(2,1)*a(3,2)*a(1,3)+a(3,1)*a(2,3)*a(1,2)-a(1,3)*a(2,2)*a(3,1)-a(1,2)*a(2,1)*a(3,3)-a(1,1)*a(3,2)*a(2,3)

求逆矩阵
a = matrix(rnorm(9),3,3)
solve(a)
并不是每一个矩阵都可逆,弱为可逆矩阵,在初等变换的过程中,不会出现整行或整列所有为0的情况。

也能够用det函数来推断矩阵行列式的值,假设为0则不可逆。

求特征向量和特征值
a = matrix(c(1,2,1,2),2,2)
eigen(a)
eigen(a)$values
对于大型矩阵,能够仅仅计算特征值
eigen(a, only.values = TRUE)$values

投影
a = matrix(c(1,2,1,2),2,2)
prod(a)

神秘值分解
svd(a)

依据已知向量计算最小二乘拟合
lsfit(c(1,2,3,4),c(2,3,4,3))
会求出直线的斜率和截距
对于本例:
Intercept(斜率)         X(截距) 
[1,]      -2.0 -5.0000000
[2,]       0.5 -2.2360680
[3,]       0.5  0.4472136
[4,]       0.5  0.8944272

实例 :
a = c(1,2,3,4)
b = c(1,3,4,5)
plot(a,b)
abline(lsfit(a,b))
或者 lm(a~b)

将矩阵QR分解。

Q:正交矩阵
R:上三角矩阵
a = matrix(c(1:9),3,3)
q = qr(a)
qr.Q(q)
           [,1]       [,2]       [,3]
[1,] -0.2672612  0.8728716  0.4082483
[2,] -0.5345225  0.2182179 -0.8164966
[3,] -0.8017837 -0.4364358  0.4082483

qr.R(q)
          [,1]      [,2]          [,3]
[1,] -3.741657 -8.552360 -1.336306e+01
[2,]  0.000000  1.963961  3.927922e+00
[3,]  0.000000  0.000000  1.776357e-15

另外,
> b <- qr.coef(Xplus, y)
> fit <- qr.fitted(Xplus, y)
> res <- qr.resid(Xplus, y)
会返回qr分解的系数,拟合和残差。

转载于:https://www.cnblogs.com/jzssuanfa/p/7238935.html

R学习-- 数组和矩阵相关推荐

  1. R语言学习笔记:矩阵与数组(array)

    元素可以保存在多个维度的对象中,数组存储的是多维数据元素,矩阵的是数组的特殊情况,它具有两维. 创建数组的几种方法. 1. > m<-c(45,23,66,77,33,44,56,12,7 ...

  2. R语言系统教程(三):多维数组和矩阵

    R语言系统教程(三):多维数组和矩阵 3.1 生成数组或矩阵 3.1.1 将向量定义为数组 3.1.2 用array()函数构造多维数组 3.1.3 用matrix()函数构造矩阵 3.2 数组下标 ...

  3. RNA-seq流程学习笔记(14)-在windows10平台上利用R包合并表达矩阵、设置实验分组信息、列名及数据的导入导出

    参考文章: RNA-seq(6): reads计数,合并矩阵并进行注释 进入R学习和相关操作后,各种折腾已经快2周了,看了几个网站的教程,借了几本教科书,发现都是零零碎碎的知识.索性就按照之前的方法, ...

  4. “数组、矩阵与广义表”学习提纲

    文章目录 前言 数组 多维数组的存储方式 矩阵 常见的特殊矩阵 对称矩阵的压缩存储计算 三角矩阵的压缩存储计算 三对角矩阵的压缩存储计算 稀疏矩阵的压缩存储方式 广义表 广义表的属性 广义表的存储方式 ...

  5. python 读取图片成为一维数组_python+opencv 图像的数组和矩阵操作

    在调用opencv的imread函数读取图像时,我们得到的其实是一个类型为numpy.ndarray的n维数组.这个数组的维度是[height,width,3],它是由每个像素的RGB通道的灰度值组成 ...

  6. R学习_multitaper包解析2:子函数spec.mtm.dpss,dpssHelper

    前言 之前讲了MTM(多锥形窗谱估计)的相关原理,现在来分析一下它的R语言的实现,这个实现是提出人的学生写的,和matlab的实现进行对照分析,加深理解,提高大家对这门技术的掌握程度,解析的顺序依旧是 ...

  7. R语言数组array函数

    数组是一个可以在两个以上的维度存储数据的R数据对象.例如 - 如果创建尺寸(2,3,4)的数组,那么创建4个矩形矩阵每2行3列.数组只能存储数据类型. 使用 array()函数创建数组.它需要向量作为 ...

  8. python 矩阵类型转换_Python3 列表,数组,矩阵的相互转换的方法示例

    在使用列表.数组和矩阵的过程中,经常需要相互转换.特此总结相互间转换的过程及结果,供大家参考. 第三方包:numpy import numpy as np mylist = [[1, 2, 3], [ ...

  9. dataframe数组做元素_数组 array 矩阵 list 数据框 dataframe

    #R语言备忘录三# #数组array和矩阵matrix.列表list.数据框dataframe #数组 #数组的重要属性就是dim,维数 #得到4*5的矩阵 z dim(z) z #构建数组 x #三 ...

最新文章

  1. 引入大数据监测地方政府信用
  2. MYSQL的字符序_mysql字符序核心概念
  3. 绝症老父亲即将说不了话,儿子用AI技术挽留他的声音
  4. ubuntu20.04编译openjdk8
  5. 基于MATLAB的MIMO系统分层空时码的仿真
  6. 腾讯TAPD发布2018企业敏捷协作数据报告
  7. 滚动条判断是否滑动到顶部底部
  8. [react] 在React中怎么使用字体图标?
  9. Python input 函数 -Python零基础入门教程
  10. realme Q5系列核心规格曝光:80W快充加持 同价位绝无仅有
  11. 查询端口号是否被占用指令
  12. 字符转换工具,仿牛族字符转换
  13. 图书管理系统【C++】
  14. DXGI高帧率屏幕录像软件源码解析(声音捕获,抓屏,ffmpeg录像,MP4录像,flv录像,麦克风采集)(第1篇API展示及使用部分)
  15. 快速寻找研究方向+发文章的方法!!按头安利!
  16. 一般硬盘读取速度和写入速度是多少
  17. 如何在家里制作服务器,在家如何架设服务器?
  18. Unity 内置访问安卓权限
  19. ps打不开图片显示计算机丢失,电脑的ps软件打不开图片怎么解决
  20. World Streamer学习4

热门文章

  1. 计算机应用基础重点分析,计算机应用基础整体设计重点分析.doc
  2. html编译圣诞情缘,H5+JS+CSS3 实现圣诞情缘
  3. python dataframe分组求和,pandas datafram中按特定月份分组和求和值
  4. 老年人自学计算机,老年人怎样学电脑?请问从网上能找到学习资吗?
  5. ubuntu安装python_Linux下的Python开发配置鸭
  6. defaultdict python3,Python collections.defaultdict() 与 dict的使用和区别|python3教程|python入门|python教程...
  7. Spring基于Annotation实现事务管理
  8. Java this关键字详解
  9. html5教学案例撰写,怎样撰写教育教学案例
  10. 数学建模学习笔记(四)——拟合算法