创建矩阵,其值等于row和col索引的函数

时间:2016-03-23 14:27:09

标签: r

我试图创建一个6x6矩阵,其单元格值等于行索引和列索引的总和。我可以使用循环来做到这一点,但我想知道是否有办法使用向量函数来做到这一点。

2 个答案:

答案 0 :(得分:5)

outer功能与" +":

一起使用
outer(1:6, 1:6, "+")

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

顺便提一下,这基本上是以下矢量化方法的捷径:

matrix(rep(1:6, 6) + rep(1:6, each = 6), nrow = 6)

答案 1 :(得分:2)

这是另一种可能性:

m <- matrix(NA,6,6)
m <- col(m)+row(m)
#     [,1] [,2] [,3] [,4] [,5] [,6]
#[1,]    2    3    4    5    6    7
#[2,]    3    4    5    6    7    8
#[3,]    4    5    6    7    8    9
#[4,]    5    6    7    8    9   10
#[5,]    6    7    8    9   10   11
#[6,]    7    8    9   10   11   12