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