R - 简洁地向每个向量元素添加向量

cde*_*man 3 r vector

假设我有一个简单的向量

v <- 1:5
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码将向量添加到向量中的每个元素,以生成结果矩阵.

matrix(rep(v, 5), nrow=5, byrow=T) + matrix(rep(v, 5), nrow=5)

     [,1] [,2] [,3] [,4] [,5]
[1,]    2    3    4    5    6
[2,]    3    4    5    6    7
[3,]    4    5    6    7    8
[4,]    5    6    7    8    9
[5,]    6    7    8    9   10
Run Code Online (Sandbox Code Playgroud)

但这似乎冗长而低效.有没有更简洁的方法来实现这一目标?也许是一些躲避我的线性代数概念?

pic*_*ick 5

outer 应该做你想做的事

outer(v, v, `+`)
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    2    3    4    5    6
# [2,]    3    4    5    6    7
# [3,]    4    5    6    7    8
# [4,]    5    6    7    8    9
# [5,]    6    7    8    9   10
Run Code Online (Sandbox Code Playgroud)

  • @cdeterman - 该函数的源代码非常简单.在控制台中输入`outer` (2认同)