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

标签 r vector

假设我有一个简单的向量

v <- 1:5

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

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

但这看起来冗长且效率低下。有没有更简洁的方法来完成这个?也许是一些线性代数概念在逃避我?

最佳答案

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

关于R - 简洁地将向量添加到每个向量元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31682657/

相关文章:

C++如何检查 vector 的内容是否存在于另一个 vector 中?

r - 多项式的卷积返回意外值

r - 传递给 .Fortran() 时无法找到 C_kmns 对象

java - 将多个 .doc 合并到一个 .csv 中

c++ - 可以原子地获取和运算的最大数据类型?

c++ - 返回指针时,找不到返回什么? C++

r - 使用 R 和 ggplot2 时连续缩放的错误

r - ridge vs lasso 中 glmnet 中的 lambda 序列

C++ 显示具有 vector 的 map

c++ - 从 double 组的未排序 vector 中删除重复项