如何使用 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

相关文章