1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > R语言教程3:向量 矩阵和数组

R语言教程3:向量 矩阵和数组

时间:2020-02-10 18:54:11

相关推荐

R语言教程3:向量 矩阵和数组

文章目录

向量矩阵数组常用的统计函数

R语言系列: 编程基础💎 循环语句

R语言中的向量、矩阵和数组的含义如下

向量

通过c函数创建的数据结构即向量,向量之间可以进行元素一对一的四则混合运算

> xs <- c(1,2,3)> ys <- c(4,5,6)> xs + ys[1] 5 7 9> xs / ys[1] 0.25 0.40 0.50

通过[]可以索引向量中的元素,但是和C, Python等编程语言不同,R语言的索引下标从1开始,并且支持多个值同时索引

> xs[1][1] 1> ys[2][1] 5> (xs/ys)[3][1] 0.5> xs[c(1,3)][1] 1 3

通过:表达式,可以不同c直接创建新向量

> zs <- 1:10> zs[2:4] [1] 2 3 4

通过:表达式生成的是特定区间内的自然数组,seq函数则提供了等差数组的生成方式,其输入参数有3个,分别表示数组区间以及元素间隔

> seq(1,10,2) # 从1到10,生成间隔为2的等差向量[1] 1 3 5 7 9

通过rep,可以创建元素重复的向量,输入参数分别为待重复元素和重复次数

> rep(1,5)[1] 1 1 1 1 1> rep(1:2, 5)[1] 1 2 1 2 1 2 1 2 1 2

矩阵

矩阵的初始化可通过matrix函数,其输入参数为矩阵元素和形状,示例如下

> matrix(1:12, 3, 4)[,1] [,2] [,3] [,4][1,] 1 4 7 10[2,] 2 5 8 11[3,] 3 6 9 12> matrix(1:12, 4, 3)[,1] [,2] [,3][1,] 1 5 9[2,] 2 6 10[3,] 3 7 11[4,] 4 8 12

通过[]可以提取矩阵中的元素,不同维度的序号之间用,分割。

维度相同的矩阵支持常规的加减乘除等运算,此外,R语言提供了便捷的矩阵计算支持,通过%*%可实现矩阵乘法

> m1 = matrix(1:12, 3, 4)> m2 = matrix(1:12, 4, 3)> m1 %*% m2[,1] [,2] [,3][1,] 70 158 246[2,] 80 184 288[3,] 90 210 330

此外,R语言还提供了一些矩阵函数

示例如下

> crossprod(m1, m1)[,1] [,2] [,3] [,4][1,] 14 32 50 68[2,] 32 77 122 167[3,] 50 122 194 266[4,] 68 167 266 365> outer(c1, c2)[,1] [,2] [,3] [,4] [,5][1,] 1 2 3 4 5[2,] 2 4 6 8 10[3,] 3 6 9 12 15[4,] 4 8 12 16 20[5,] 5 10 15 20 25

数组

数组可理解为张量,从而向量和矩阵均为数组的特殊情况,即分别是一维数组和二维数组。

通过array可以创建高维数组,其输入参数分别为数组元素、数组维度以及各维度名称。

array(data, dim=length(data), dimnames=NULL)

示例如下

> a1 <- array(1:12, dim=c(2,3,2))> a1, , 1[,1] [,2] [,3][1,] 1 3 5[2,] 2 4 6, , 2[,1] [,2] [,3][1,] 7 9 11[2,] 8 10 12

[]同样可以访问数组元素,不同维度之间用,隔开,如果某一维度未声明特定的值,就提取这个维度的所有元素

> a1[1,2,1][1] 3> a1[1,2,2][1] 9> a1[,2,2][1] 9 10> a1[,2,][,1] [,2][1,] 3 9[2,] 4 10

常用的统计函数

在R语言中,提供了一些统计函数,适用于数组、矩阵以及向量等数据结构

示例如下

> sum(c1)[1] 15> sum(m1)[1] 78> sum(a1)[1] 78> sd(m1)[1] 3.605551

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。