R语言 创建偶数序列的二维数组
在这篇文章中,我们将讨论如何在R编程语言中创建一个偶数整数序列的二维数组。
方法1:使用seq()方法
array()方法可以用来创建一个>=1
维的数组。该方法返回一个具有dim属性中指定的外延的数组。对于一个二维数组,dim属性包含一个由两个元素组成的向量,首先表示行的数量,然后表示列的数量。
语法: array(data , dim)
参数:
- data – 要填充到数组中的数据
- dim – 矩阵的尺寸,以矢量的形式表示
此方法中的数据可以使用seq()方法来创建,该方法用于在定义的数字范围内生成规则序列。
语法: seq(from = 1, to = 1, length.out , by = ((to – from)/(length.out – 1))
参数
- from, to – (默认值:1)序列的起始值和(最大的)结束值。
- by – 序列递增的数字指标。
- length.out – 序列长度的一个非负整数指标。
在这种方法中,from属性必须是偶数,以便产生一个偶数的序列。length.out参数将等于二维矩阵的尺寸乘积。而by属性的值为2,以便每次将数字递增2。
例子
# creating integers
mat <- seq(from = 2, length.out = 12, by = 2)
# creating dimensions
dim <- c(4, 3)
arr <- array( mat , dim )
print("Array of even integers sequence:")
print(arr)
输出
[1] "Array of even integers sequence:"
[,1] [,2] [,3]
[1,] 2 10 18
[2,] 4 12 20
[3,] 6 14 22
[4,] 8 16 24
方法2:手动使用for循环
开始数据序列的起始位置与二维数组的所需尺寸一起被指定。 由于所需元素的总数等于尺寸的乘积,但在这里我们需要在交替的位置出现偶数。因此,元素的总数将相当于尺寸乘积的两倍。现在,结束位置是由:
结束位置=开始位置+元素数
开始一个for循环,从起始位置到结束位置-1进行迭代,在这个范围内产生一个元素序列,每当遇到一个偶数,这个数字就被追加到一个空列表中。这个向量形成了偶数的序列,可以输入到R基的matrix()方法中,从而创建一个2D矩阵。
语法
matrix(data , nrow = )
在非常大的维度尺寸之前,时间复杂度可以被认为是几乎恒定的。
例子
# specifying where to start the
# even integers from
start_pos <- 20
# specifying dimensions of matrix
nrow <- 3
ncol <- 2
# calculating starting position
end_pos = (nrow * ncol * 2) + start_pos
# creating empty vector
vec <- c()
for (i in start_pos : end_pos-1){
# check if element is divisible by 2
if(!(i%%2)){
# append element to vector
vec <- c(vec, i )
}
}
# creating matrix
mat <- matrix(vec , nrow = 3)
print ("Sequence of even integers in 2-D array")
print (mat)
输出
[1] "Sequence of even integers in 2-D array"
[,1] [,2]
[1,] 20 26
[2,] 22 28
[3,] 24 30