R语言中向量和矩阵简单运算的实现

一、向量运算

向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量。

1.R语言向量的产生方法

> x <- c(1,2,3)
> x
[1] 1 2 3

2.向量加减乘除都是对其对应元素进行的,例如下面

> x <- c(1,2,3)
> y <- x*2
> y
[1] 2 4 6

(注:向量的整数除法是%/%,取余是%%。)

3.向量的内积,有两种方法。

第一种方法:%*%

> x <- c(1,2,3)
> y <- c(4,5,6)
> z <- x%*%y
> z
   [,1]
[1,]  32

第二种方法:crossprod(x,y).

> x <- c(1,2,3)
> y <- c(4,5,6)
> z <- crossprod(x,y)
> z
   [,1]
[1,]  32

4.向量的外积 ,有三种方法。

第一种方法:%o%

> x <- c(1,2,3)
> y <- c(4,5,6)
> x%o%y
   [,1] [,2] [,3]
[1,]  4  5  6
[2,]  8  10  12
[3,]  12  15  18

第二种方法:tcrossprod(x,y)

> x <- c(1,2,3)
> y <- c(4,5,6)
> tcrossprod(x,y)
   [,1] [,2] [,3]
[1,]  4  5  6
[2,]  8  10  12
[3,]  12  15  18

第三种方法:outer(x,y)

> x <- c(1,2,3)
> y <- c(4,5,6)
> outer(x,y)
   [,1] [,2] [,3]
[1,]  4  5  6
[2,]  8  10  12
[3,]  12  15  18

二、矩阵的运算

1. 矩阵的产生方式

> x <- matrix(1:9,3,3)
> x
   [,1] [,2] [,3]
[1,]  1  4  7
[2,]  2  5  8
[3,]  3  6  9

其中第一个3表示的是行数,第二个3表示的列数。 故产生一个3*3的矩阵。这里是将1到9按列排列,如果想按行排列,那么如下代码

> x <- matrix(1:9,3,3,byrow = TRUE)
> x
   [,1] [,2] [,3]
[1,]  1  2  3
[2,]  4  5  6
[3,]  7  8  9

2.矩阵对应元素的运算

> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> x*y
   [,1] [,2] [,3]
[1,]  9  24  21
[2,]  16  25  16
[3,]  21  24  9

3.矩阵的转置

> x <- matrix(1:9,3,3)
> x
   [,1] [,2] [,3]
[1,]  1  4  7
[2,]  2  5  8
[3,]  3  6  9
> t(x)
   [,1] [,2] [,3]
[1,]  1  2  3
[2,]  4  5  6
[3,]  7  8  9

4.矩阵乘法

> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> x%*%y
   [,1] [,2] [,3]
[1,]  90  54  18
[2,] 114  69  24
[3,] 138  84  30

5.矩阵 x乘y的转置,x的转置乘以y

> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> crossprod(x,y)
   [,1] [,2] [,3]
[1,]  46  28  10
[2,] 118  73  28
[3,] 190 118  46
#这个是x的转置乘以y
> tcrossprod(x,y)
   [,1] [,2] [,3]
[1,]  54  42  30
[2,]  72  57  42
[3,]  90  72  54
#这个是x乘以y的转置

6.求矩阵的行列式、对称矩阵的特征值、特征向量

> x <- matrix(1:9,3,3)
> x
   [,1] [,2] [,3]
[1,]  1  4  7
[2,]  2  5  8
[3,]  3  6  9
> det(x)
[1] 0
#这个是求特征值的
> x <- matrix(1:9,3,3)
> x
   [,1] [,2] [,3]
[1,]  1  4  7
[2,]  2  5  8
[3,]  3  6  9
> a <- crossprod(x,x)
> a1 <- eigen(a)  #这个是得到对称矩阵特征值、特征向量的主要函数
> a1
eigen() decomposition
$`values`  #这个是特征值
[1] 2.838586e+02 1.141413e+00 6.308738e-15

$vectors   #这个是特征向量
      [,1]    [,2]    [,3]
[1,] -0.2148372 0.8872307 0.4082483
[2,] -0.5205874 0.2496440 -0.8164966
[3,] -0.8263375 -0.3879428 0.4082483

到此这篇关于R语言中向量和矩阵简单运算的实现的文章就介绍到这了,更多相关R语言向量运算和矩阵运算内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • R语言基本运算的示例代码

    1.基本运算 1.1 加.减.乘.除 + - * / 在赋值中可以使用=,也可以使用<-. 1.2余数.整除 %% %/% 1.3 取绝对值 abs() 判断正负号sign() 1.4幂指数 ^ 平方根sqart () 1.5 以二为底的对数:log2() 以十为底的对数:log10() 自定义底的对数:log(c,base=) 自然常数e的对数:log(a,base=exp(1)) 2.向量运算 向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字

  • R语言中向量和矩阵简单运算的实现

    一.向量运算 向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量. 1.R语言向量的产生方法 > x <- c(1,2,3) > x [1] 1 2 3 2.向量加减乘除都是对其对应元素进行的,例如下面 > x <- c(1,2,3) > y <- x*2 > y [1] 2 4 6 (注:向量的整数除法是%/%,取余是%%.) 3.向量的内积,有两种方法. 第一种方法:%*% > x

  • R语言中矩阵matrix和数据框data.frame的使用详解

    本文主要介绍了R语言中矩阵matrix和数据框data.frame的一些使用,分享给大家,具体如下: "一,矩阵matrix" "创建向量" x_1=c(1,2,3) x_1=c(1:3) x_2=1:3 typeof(x_1)==typeof(x_2)#查看目标类型 x_3=seq(1,6,length=3)#将1--6分为3个数 a<-rep(1:3,each=3) #1到3依次重复 c<-rep(1:3,times=3) #1到3重复3次 d<

  • 详解R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型

    在标准线性模型中,我们假设 .当线性假设无法满足时,可以考虑使用其他方法. 多项式回归 扩展可能是假设某些多项式函数, 同样,在标准线性模型方法(使用GLM的条件正态分布)中,参数  可以使用最小二乘法获得,其中  在  . 即使此多项式模型不是真正的多项式模型,也可能仍然是一个很好的近似值 .实际上,根据 Stone-Weierstrass定理,如果  在某个区间上是连续的,则有一个统一的近似值  ,通过多项式函数. 仅作说明,请考虑以下数据集 db = data.frame(x=xr,y=y

  • 详解R语言中的表达式、数学公式、特殊符号

      在R语言的绘图函数中,如果文本参数是合法的R语言表达式,那么这个表达式就被用Tex类似的规则进行文本格式化. y <- function(x) (exp(-(x^2)/2))/sqrt(2*pi) plot(y, -5, 5, main = expression(f(x) == frac(1,sqrt(2*pi))*e^(-frac(x^2,2))), lwd = 3, col = "blue") library(ggplot2) x <- seq(0, 2*pi, b

  • R语言中时间序列分析浅析

    时间序列是将统一统计值按照时间发生的先后顺序来进行排列,时间序列分析的主要目的是根据已有数据对未来进行预测. 一个稳定的时间序列中常常包含两个部分,那么就是:有规律的时间序列+噪声.所以,在以下的方法中,主要的目的就是去过滤噪声值,让我们的时间序列更加的有分析意义. 语法 时间序列分析中ts()函数的基本语法是 timeseries.object.name <- ts(data, start, end, frequency) 以下是所使用的参数的描述 data是包含在时间序列中使用的值的向量或矩

  • R语言中常见的几种创建矩阵形式总结

    矩阵概述 R语言的实质实质上是与matlab差不多的,都是以矩阵为基础的 在R语言中,矩阵(matrix)是将数据按行和列组织数据的一种数据对象,相当于二维数组,可以用于描述二维的数据.与向量相似,矩阵的每个元素都拥有相同的数据类型.通常用列来表示来自不同变量的数据,用行来表示相同的数据. R中创建矩阵的语法格式 在R语言中可以使用matrix()函数来创建矩阵,其语法格式如下: matrix(data=NA, nrow = 1, ncol = 1, byrow = FALSE, dimname

  • R语言中其它对象知识点总结

    其他对象 矩阵 二维向量 矩阵操作更类似于向量,而不是向量的向量或者向量列表 下标可以用用来引用元素,但并不反应矩阵的存储方式 矩阵没有一个确定的属性 数组 具有两个以上维度的向量 数组可用来表示多个维度的同类型数据 数组的底层存储机制是向量 数组也没有确定的类属性 因子 因子型变量表示分类信息 因子型变量通常是一个有序项目的集合 因子型变量可以取得的所有值被称为因子水平 因子型变量的输出结果中各个因子水平没有加引号,且都明确显示出来了 > (eye.colors <- factor(c(&q

  • R语言实现导出矩阵

    程序实在是调不出来了,我决定破釜沉舟,直接把所有表格都打印出来,看看数据到底哪儿有问题. 然后就开始了闹心的矩阵导出... 首先,百度了一下,数据导出的代码为: write.table (x, file ="", sep ="", row.names =TRUE, col.names =TRUE, quote =TRUE) 其中: x:需要导出的数据 file:导出的文件路径 sep:分隔符,默认为空格(" "),也就是以空格为分割列 row.n

  • C语言中杨氏矩阵与杨辉三角的实现方法

    一.杨氏矩阵 杨氏矩阵 1.杨氏矩阵的概念 在数学中,杨表(英语:Young tableau),又称杨氏矩阵.是对组合表示理论和舒伯特演算很有用的工具.它提供了一种方便的方式来描述对称和一般线性群的群表示,并研究它们的性质.杨表是剑桥大学数学家 Alfred Young 在1900年推提出.然后,它被弗罗贝尼乌斯应用对称群的研究中.他们的理论由许多数学家进一步发展,包括PercyMacMahon.W. V. D. Hodge.G. de B. Robinson.吉安-卡洛·罗塔.Alain La

  • 详解R语言中生存分析模型与时间依赖性ROC曲线可视化

    R语言简介 R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. 人们通常使用接收者操作特征曲线(ROC)进行二元结果逻辑回归.但是,流行病学研究中感兴趣的结果通常是事件发生时间.使用随时间变化的时间依赖性ROC可以更全面地描述这种情况下的预测模型. 时间依赖性ROC定义 令 Mi为用于死亡率预测的基线(时间0)标量标记. 当随时间推移观察到结果时,其预测性能取决于评估时间 t.直观地说,在零时间测量的标记值应该

随机推荐