本文概述
- 创建数组
- 数组索引
- 矩阵创建和添加
- apply()
- 本文总结
创建数组array()函数将创建一个采用向量的数组, 该向量是参数中的数字和维数(‘ dim’ )。
我们来看下面的示例, 其中创建了两个名为” array1″ 和” array2″ 的向量。
vector1 =c (5, 10, 15, 20)
vector2 =c (25, 30, 35, 40, 45, 50, 55, 60)
你可以将上面的两个向量作为数组的输入, 其中维被视为4 * 4, 并创建了两个矩阵或维数据。
final = array (c (array1, array2), dim =c(4, 4, 3))
print (final)
上面代码的输出如下:
, , 1[, 1] [, 2] [, 3] [, 4]
[1, ]525455
[2, ]10305010
[3, ]15355515
[4, ]20406020, , 2[, 1] [, 2] [, 3] [, 4]
[1, ]2545525
[2, ]30501030
[3, ]35551535
[4, ]40602040, , 3[, 1] [, 2] [, 3] [, 4]
[1, ]4552545
[2, ]50103050
[3, ]55153555
[4, ]60204060
让我们使用” matrix.names” 将数组重命名为” Arr1″ 和” Arr2″ 。此外, 将行名更改为(” row1″ , ” row2″ ), 将列名更改为(” column1″ , ” column2 “ , ” column3″ )。矩阵的尺寸为2行和3列。
array1 =c (9 , 18 )
array2 = c (27, 36)
r.names = c ("column1", "column2", "column3")
c.names = c ("row1", "row2")
m.names = c ("Arr1", "Arr2")final = array (c (array1, array2), dim=c (2, 3, 2), dimnames=list (c.names, r.names, m.names))
print(final)
上面的代码输出如下, 其中有两行三列。同样, 一旦完成, 列中的值就会重复:
, , Arr1column1 column2 column3
row19279
row2183618, , Arr2column1 column2 column3
row127927
row2361836
数组索引数组由多维方式的元素组成, 可以为操作访问每个元素。可以使用'[]’ 对元素进行索引, 其中类似数组的矩阵由行和列组成, 可以通过以下方式对它们进行索引:mat [row, column]
让我们以下面的示例为例, 其中数组包含从1到9的向量输入。只有三行和列包含从1到9的值.’ c.names)’ 是具有向量的新列名( ” c1″ , ” c2″ , ” c3″ )和” r.names” 是新的行名(” r1″ , ” r2″ , ” r3″ ), 也是向量。
a1=c (1, 2, 3, 4)
a2= c (5, 6, 7, 8, 9)
r.names = c ("c1", "c2", "c3")
c.names = c ("r1", "r2", "r3")
m.names = c ("first")arr = array (c (a1, a2), dim=c (3, 3, 1), dimnames=list (c.names, r.names, m.names))
print(arr)
, , firstc1 c2 c3
r1147
r2258
r3369
上面的代码输出如下:
, , firstc1 c2 c3
r1147
r2258
r3369
你可以看到从1到9的矩阵是使用3 3维(行列)格式生成的, 并且行和列的名称已更改。
让我们看看如何通过以下示例提取数组中的元素。
- 让我们从上面的数组” arr” 中提取数字” 7″ 。
arr[1, 3, 1]
7
上面代码的输出是7。在” arr [1, 3, 1]” 行的第3列和第1行中, 提取了第一个数组” arr” 。
- 要访问1, 则从第1列和第1列的” arr [1, 1, 1]” 行1中提取第一个数组” arr” 。
arr[1, 1, 1]
1个
上面代码的输出为1。
- 要一次访问多个值, 你需要指定所需的范围。
arr[1:2, 1:2, 1]
c1 | c2 | |
---|---|---|
11 | 1 | 4 |
22 | 2 | 5 |
c1c2
r114
r225
- 你可以使用以下语法访问整个数组’ arr’ , 其中’ arr [, , 1]’ 指定包含所有行和列, 每个行和列均以逗号分隔, 并用空格表示。 1指定要提取的数组” arr” 。
arr[ , , 1]
c1 | c2 | c3 | |
---|---|---|---|
11 | 1 | 4 | 7 |
22 | 2 | 5 | 8 |
33 | 3 | 6 | 9 |
c1c2c3
r1147
r2258
r3369
- 你可以通过以下代码获得整个第二行, 其中arr [2, , 1]获取带有空格的第二行, 而1是要提取的” arr” 。
arr[2, , 1]
- c1
- 2
- c2
- 5
- c3
- 8
c1 2
c2 5
c3 8
- 你可以通过以下代码获得整个第二列, 其中arr [, 2, 1]空格, 第二列是2, 而1是要提取的” arr” 。
mat[ , 2, 1]
- 11
- 4
- 22
- 5
- 33
- 6
r1 4
r2 5
r3 6
矩阵创建和添加让我们从’ arr [, , 1]’ 创建一个名为mat1和mat2的矩阵, 在其中复制’ arr’ 中的所有行和列。
mat1 = arr[, , 1]
mat2 = arr[, , 1]
c1 c2 c3
r128 14
r24 10 16
r36 12 18
添加两个矩阵’ mat1’ 和’ mat2’ 并将结果存储在final中。输出也会被打印。
final <
- mat1+mat2
print(final)
下面的输出显示mat1和mat2的每一行和每一列都被添加到彼此。
c1 c2 c3
r128 14
r24 10 16
r36 12 18
apply()” apply()” 是R软件包之一, 它具有几个功能, 可帮助以更轻松有效的方式编写代码。你将在以下示例中看到该示例, 该示例可用于计算两个不同数组的总和。
apply()的语法为:
apply(x, margin, function)
上面的参数表明:
x:作为矩阵的数组或二维数据。
margin:表示要用作边距值的函数, 行的c(1), 列的c(2), 行和列的c(1, 2)。
function:指示要在给定数据上应用的R内置或用户定义的函数。
让我们使用以下代码创建一个长度为三的名为” array1″ 和长度为六的” array2″ 的向量。
array1 = c(5, 10, 15)
array2 = c(15, 20, 25, 30, 35, 40)
你可以在下面看到’ array()’ 接受两个名为’ array1’ 和’ array2’ 的向量, 并创建了3行, 3列和2个矩阵的维并将其存储到’ my。阵列” 。
my.Array <
- array(c(array1, array2), dim = c(3, 3, 2))
print(my.Array)
, , 1[, 1] [, 2] [, 3]
[1, ]51530
[2, ]102035
[3, ]152540, , 2[, 1] [, 2] [, 3]
[1, ]51530
[2, ]102035
[3, ]152540
上面的代码提供以下输出, 其中使用3 3(行列)创建两个矩阵。
, , 1[, 1] [, 2] [, 3]
[1, ]51530
[2, ]102035
[3, ]152540, , 2[, 1] [, 2] [, 3]
[1, ]51530
[2, ]102035
[3, ]152540
下面使用’ apply()’ 来按列计算两个矩阵的总和。
final <
- apply(my.Array, c(2), sum)
print(final)
[1]60 120 210
你可以在上面看到在’ my。’ 中矩阵的元素使用空白的c(2)的地方。将Array’ 按列进行求和以得到以下输出。
60 120 210
最后, 下面使用” apply()” 按行计算两个矩阵的总和。
final <
- apply(my.Array, c(1), sum)
print(final)
[1] 100 130 160
你可以在上面看到在’ my。’ 中矩阵的元素使用c(1)边距的地方。按行将Array’ 相加得出以下输出。
100 130 160
本文总结恭喜, 你已完成本教程的结尾!
你已经了解了R的数组及其创建, 使用示例在数组中建立索引, 矩阵的创建和添加以及apply()函数的知识。
如果你想了解有关R的更多信息, 请参加srcmini的R入门课程。
参考文献:
R数组
【R中的数组用法完全剖析】R数组函数和在R中创建数组
推荐阅读
- 扫描500多个安全漏洞以保护网站安全
- WordPress安装中的前5个安全漏洞
- 13种最佳安全做法,以保护你的WordPress网站
- 顶级4高级WordPress安全插件和服务
- 防止安全威胁的8个WordPress WAF
- 使用X-Frame-Options和HTTPOnly Cookie保护WordPress
- 如何保护WordPress免受蛮力攻击()
- 5个加强和保护WordPress网站的实时提示
- 如何使用WPScan在WordPress网站上查找安全漏洞()