如何使用 R 中 rep 函数生成的向量创建矩阵?
r programmingserver side programmingprogramming更新于 2025/4/9 6:22:17
只有传递偶数个元素,才能生成矩阵。如果我们想使用 rep 函数生成的向量创建矩阵,那么这个向量的长度必须能被 2 整除。例如,如果我们有一个用 rep 函数创建的向量 x,它的长度为 20,那么可以使用 matrix(x,ncol=2) 构造大小为 10x2 的矩阵 M。
示例 1
> x<-rep(rpois(20,5),2) > M1<-matrix(x,ncol=2) > M1
输出
[,1] [,2] [1,] 10 10 [2,] 4 4 [3,] 7 7 [4,] 3 3 [5,] 2 2 [6,] 6 6 [7,] 4 4 [8,] 5 5 [9,] 4 4 [10,] 5 5 [11,] 6 6 [12,] 4 4 [13,] 1 1 [14,] 3 3 [15,] 4 4 [16,] 8 8 [17,] 2 2 [18,] 2 2 [19,] 5 5 [20,] 8 8
示例 2
> x<-rep(rpois(20,5),2) > M2<-matrix(x,ncol=4) > M2
输出
[,1] [,2] [,3] [,4] [1,] 10 6 10 6 [2,] 4 4 4 4 [3,] 7 1 7 1 [4,] 3 3 3 3 [5,] 2 4 2 4 [6,] 6 8 6 8 [7,] 4 2 4 2 [8,] 5 2 5 2 [9,] 4 5 4 5 [10,] 5 8 5 8
示例 3
> x<-rep(rpois(20,5),2) > M3<-matrix(x,ncol=5) > M3
输出
[,1] [,2] [,3] [,4] [,5] [1,] 10 4 2 2 1 [2,] 4 5 2 6 3 [3,] 7 6 5 4 4 [4,] 3 4 8 5 8 [5,] 2 1 10 4 2 [6,] 6 3 4 5 2 [7,] 4 4 7 6 5 [8,] 5 8 3 4 8
示例 4
> y<-rep(rnorm(10,5,1),5) > M4<-matrix(y,nrow=10) > M4
输出
[,1] [,2] [,3] [,4] [,5] [1,] 6.239542 6.239542 6.239542 6.239542 6.239542 [2,] 7.033764 7.033764 7.033764 7.033764 7.033764 [3,] 3.970498 3.970498 3.970498 3.970498 3.970498 [4,] 4.273613 4.273613 4.273613 4.273613 4.273613 [5,] 6.090508 6.090508 6.090508 6.090508 6.090508 [6,] 3.803242 3.803242 3.803242 3.803242 3.803242 [7,] 6.272942 6.272942 6.272942 6.272942 6.272942 [8,] 6.160341 6.160341 6.160341 6.160341 6.160341 [9,] 2.255923 2.255923 2.255923 2.255923 2.255923 [10,] 5.000681 5.000681 5.000681 5.000681 5.000681
示例 5
> y<-rep(rnorm(10,5,1),5) > M5<-matrix(y,nrow=25) > M5
输出
[,1] [,2] [1,] 6.239542 3.803242 [2,] 7.033764 6.272942 [3,] 3.970498 6.160341 [4,] 4.273613 2.255923 [5,] 6.090508 5.000681 [6,] 3.803242 6.239542 [7,] 6.272942 7.033764 [8,] 6.160341 3.970498 [9,] 2.255923 4.273613 [10,] 5.000681 6.090508 [11,] 6.239542 3.803242 [12,] 7.033764 6.272942 [13,] 3.970498 6.160341 [14,] 4.273613 2.255923 [15,] 6.090508 5.000681 [16,] 3.803242 6.239542 [17,] 6.272942 7.033764 [18,] 6.160341 3.970498 [19,] 2.255923 4.273613 [20,] 5.000681 6.090508 [21,] 6.239542 3.803242 [22,] 7.033764 6.272942 [23,] 3.970498 6.160341 [24,] 4.273613 2.255923 [25,] 6.090508 5.000681
示例 6
> y<-rep(rnorm(10,5,1),5) > M6<-matrix(rep(c(1,5,10,15,20,25),5),nrow=10) > M6
输出
[,1] [,2] [,3] [1,] 1 20 10 [2,] 5 25 15 [3,] 10 1 20 [4,] 15 5 25 [5,] 20 10 1 [6,] 25 15 5 [7,] 1 20 10 [8,] 5 25 15 [9,] 10 1 20 [10,] 15 5 25
示例 7
> y<-rep(rnorm(10,5,1),5) > M7<-matrix(rep(c(1,5,10,15,20,25),5),nrow=5) > M7
输出
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 25 20 15 10 5 [2,] 5 1 25 20 15 10 [3,] 10 5 1 25 20 15 [4,] 15 10 5 1 25 20 [5,] 20 15 10 5 1 25
示例 8
> y<-rep(rnorm(10,5,1),5) > M8<-matrix(rep(c(1,5,10,15,20,25),5),nrow=15) > M8
输出
[,1] [,2] [1,] 1 15 [2,] 5 20 [3,] 10 25 [4,] 15 1 [5,] 20 5 [6,] 25 10 [7,] 1 15 [8,] 5 20 [9,] 10 25 [10,] 15 1 [11,] 20 5 [12,] 25 10 [13,] 1 15 [14,] 5 20 [15,] 10 25