从 R 中的向量创建矩阵
在 R 编程语言中,向量是由同质元素组成的基本对象。向量的数据类型可以是整数、双精度、字符、逻辑、复杂或原始。可以使用c()
函数创建向量。
句法:
x <- c(val1, val2, .....)
R中的向量与C语言中的数组相同,用于保存相同类型的多个数据值。向量也可用于创建矩阵。
矩阵可以在向量的帮助下通过使用 R 编程语言中的预定义函数来创建。这些函数将向量作为参数以及矩阵维度的其他几个参数等。
用于矩阵创建的函数:
- 矩阵()函数
- cbind()函数
- rbind()函数
matrix()
函数
可用数据存在于单个/多个向量中,然后matrix()函数可用于通过在函数中传递以下参数来创建矩阵。
句法:
matrix(data, nrow, ncol, byrow, dimnames)
在哪里,
data is the input vector which represents the elements in the matrix
nrow specifies the number of rows to be created
ncol specifies the number of columns to be created
byrow specifies logical value. If TRUE, matrix will be filled by row. Default value is FALSE.
dimnames specifies the names of rows and columns
示例 1:
# defining data in the vector
x <- c(5:16)
# defining row names and column names
rown <- c("row_1", "row_2", "row_3")
coln <- c("col_1", "col_2", "col_3", "col_4")
# creating matrix
m <- matrix(x, nrow = 3, byrow = TRUE,
dimnames = list(rown, coln))
# print matrix
print(m)
# print class of m
class(m)
输出:
col_1 col_2 col_3 col_4
row_1 5 6 7 8
row_2 9 10 11 12
row_3 13 14 15 16
[1] "matrix"
如果要使用多个向量中存在的数据创建矩阵,则创建多个向量的向量并将其作为参数传递给matrix()
函数。
示例 2:
# defining multiple vectors
x <- c(1:5)
y <- c(11:15)
z <- c(21:25)
# creating matrix
m <- matrix(c(x, y, z), ncol = 3)
# print matrix
print(m)
# print class of m
class(m)
输出:
[, 1] [, 2] [, 3]
[1, ] 1 11 21
[2, ] 2 12 22
[3, ] 3 13 23
[4, ] 4 14 24
[5, ] 5 15 25
[1] "matrix"
cbind()
函数
R编程中的cbind()
函数用于按列组合向量、数据帧或矩阵,数据集的行数应该相等,否则输出将难以理解。
句法:
cbind(v1, v2, v3, ....., deparse.level)
在哪里,
v1, v2, v3, …. represent vectors, matrices or data frames
deparse.level used for constructing labels for non-matrix like arguments. 0 for no labels. Default value is 1 or 2 for labelling from the arguments names.
例子:
# defining multiple vectors
x <- c(1:5)
y <- c(11:15)
z <- c(21:25)
# creating matrix
m <- cbind(x, y, z)
# print matrix
print(m)
# print class of m
class(m)
输出:
x y z
[1, ] 1 11 21
[2, ] 2 12 22
[3, ] 3 13 23
[4, ] 4 14 24
[5, ] 5 15 25
[1] "matrix"
rbind()
函数
R 编程中的rbind()
函数用于按行组合向量、数据帧或矩阵,并且数据集的列数应该相等,否则输出将微不足道。
句法:
rbind(v1, v2, v3, ....., deparse.level)
在哪里,
v1, v2, v3, …. represent vectors, matrices or data frames
deparse.level used for constructing labels for non-matrix like arguments. 0 for no labels. Default value is 1 or 2 for labelling from the arguments names.
例子:
# defining multiple vectors
x <- c(1:5)
y <- c(11:15)
z <- c(21:25)
# creating matrix
n <- rbind(x, y, z)
# print matrix
print(n)
# print class of m
class(n)
输出:
[, 1] [, 2] [, 3] [, 4] [, 5]
x 1 2 3 4 5
y 11 12 13 14 15
z 21 22 23 24 25
[1] "matrix"