将值非随机分配给R中的矩阵

时间:2018-04-24 06:07:31

标签: r matrix

R命令

matrix(sample(1:9), nrow = 3, ncol = 3)

产生

     [,1] [,2] [,3]
[1,]    4    6    2
[2,]    9    1    8
[3,]    5    3    7

值随机放置在矩阵位置内。

如何轻松生成以下矩阵(这是上述的简单重新排列)?

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

也就是说,通常,产生一个矩阵,其中小值往往接近其他小值,而大值往往接近其他大值。

换句话说,我想说明矩阵中值之间的空间自相关。也许通过指定相关系数来指示关系的整体强度。

2 个答案:

答案 0 :(得分:2)

我们可以执行sort然后构建matrix

matrix(sort(m1), 3, 3, byrow = TRUE)

或者我们可以做到

m1[] <- sort(m1)
t(m1)

答案 1 :(得分:1)

如果你需要的是在这个矩阵中“传播”一个数字向量(或其他),你可以这样做:

> matrix((1:9), nrow = 3, ncol = 3)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> matrix((1:9), nrow = 3, ncol = 3,byrow = T)
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

或任意数字:

> vec <- c(12,17,-6,0.4,1,1,1,5,0)
> matrix(vec, nrow = 3, ncol = 3,byrow = T)
     [,1] [,2] [,3]
[1,] 12.0   17   -6
[2,]  0.4    1    1
[3,]  1.0    5    0