【问题标题】:Matrix with integer random rows具有整数随机行的矩阵
【发布时间】:2018-05-23 17:22:09
【问题描述】:

命令

 matrix(sample.int(12, 9*12, TRUE), 9, 12)

生成一个整数随机矩阵(9 行和 12 列),整数值从 1 到 12。我想知道是否有这个代码的版本可以生成一个矩阵,其行是整数随机行,值从 1 到 12(不重复)。我能够找到这个问题的“微不足道”的答案;与

matrix(sample.int(m, 1*12), 9, 12, byrow=TRUE)

我得到了一个这样的矩阵,但是行都是相等的(这是同一行重复9次)。

【问题讨论】:

    标签: r matrix random integer


    【解决方案1】:

    replicate 函数(将 sample(12) 之类的操作重复指定次数)返回一个矩阵,该矩阵的列主要方向可以通过 t 翻转到您想要的行方向:

    t( replicate(9, {sample(12)} ) )
          [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
     [1,]    9   11    5    3    4    6    2    8   10    12     7     1
     [2,]    4    5   12    6    8    2    9    1   11    10     7     3
     [3,]    9    8   10   12    2    6    3    7    4     1    11     5
     [4,]    4    9    1    2    6   11    8    5    7     3    12    10
     [5,]    1    2    4    5   11    6    3    8   10     9    12     7
     [6,]    4    8   10   12    5    9    2    7   11     1     3     6
     [7,]    5    7    8    4    1    6   10   11    2     3    12     9
     [8,]    2    4   10    1   12    5    7    6   11     3     8     9
     [9,]    2    7    9   11    8    1   12   10    6     5     3     4
    

    replicate函数在很多仿真代码中都有使用。

    【讨论】:

      猜你喜欢
      • 2017-08-01
      • 2017-02-09
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 2012-11-21
      • 2018-08-11
      相关资源
      最近更新 更多