R语言 从矢量创建矩阵
在R编程语言中, 向量 是一个由同质元素组成的基本对象。向量的数据类型可以是整数、双数、字符、逻辑、复数或原始数据。使用 c() 函数可以创建一个向量。
语法
x <- c(val1, val2, .....)
R语言中的向量与C语言中的数组相同,都是用来保存同一类型的多个数据值。向量也可以用来创建矩阵。
通过使用R编程语言中的预定义函数,可以在向量的帮助下创建矩阵。这些函数以向量为参数,同时还有其他几个关于矩阵尺寸等参数。
用于创建矩阵的函数。
- matrix() 函数
- cbind() 函数
- rbind() 函数
matrix()函数
可用的数据存在于一个/多个矢量中,那么 matrix() 函数可以用来创建矩阵,在函数中传递以下参数。
语法
matrix(data, nrow, ncol, byrow, dimnames)
其中
data 是输入向量,代表矩阵中的元素
nrow 指定要创建的行数
ncol 指定要创建的列数
byrow 指定逻辑值。如果为 “true”,矩阵将被按行填充。默认值是FALSE。
dimnames 指定行和列的名称。
例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, …. 代表向量、矩阵或数据帧
deparse.level 用于为非矩阵类参数构建标签。0表示没有标签。默认值是1或2,用于从参数名称中进行标记。
例子
# 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, …. 代表向量、矩阵或数据帧
deparse.level 用于为非矩阵类参数构建标签。0表示没有标签。默认值是1或2,用于从参数名称中进行标记。
例子
# 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"