R 跟踪向量中每个元素与另一个向量的和

R 跟踪向量中每个元素与另一个向量的和,r,vector,sum,R,Vector,Sum,我有两个向量,我想把向量a的每个元素和向量b相加。但我还想知道a和b中哪个元素会给我这个值。我已尝试以下操作以获取我的输出: a <- 1:3 b <- 4:6 store <- list() for(i in 1:length(b)){ for(j in 1:length(a)){ total <- b[i] + a[j] store[[paste0("a",i, "+","b",j)]

我有两个向量,我想把向量
a
的每个元素和向量
b
相加。但我还想知道
a
b
中哪个元素会给我这个值。我已尝试以下操作以获取我的输出:

a <- 1:3
b <- 4:6

store <- list()

for(i in 1:length(b)){
        for(j in 1:length(a)){
                total <- b[i] + a[j]
                store[[paste0("a",i, "+","b",j)]] <- total  
        }        
}

## output
> unlist(store)
## a1+b1 a1+b2 a1+b3 a2+b1 a2+b2 a2+b3 a3+b1 a3+b2 a3+b3 
## 5     6     7     6     7     8     7     8     9 
然而,我忘记了将给我这个值的那对


如何在不使用循环的情况下跟踪该对?

我们可以使用第二个
外部
来获取
名称
,并使用它来分配第一个的名称

nm <- outer(seq_along(a), seq_along(b), FUN = function(x, y) sprintf('a%d + b%d', x, y))
res <- setNames(c(outer(a,b,`+`)), nm)
res 
#   a1 + b1 a2 + b1 a3 + b1 a1 + b2 a2 + b2 a3 + b2 a1 + b3 a2 + b3 a3 + b3 
#      5       6       7       6       7       8       7       8       9 

nm您可以尝试
nm完美,非常感谢akrun!
nm <- outer(seq_along(a), seq_along(b), FUN = function(x, y) sprintf('a%d + b%d', x, y))
res <- setNames(c(outer(a,b,`+`)), nm)
res 
#   a1 + b1 a2 + b1 a3 + b1 a1 + b2 a2 + b2 a3 + b2 a1 + b3 a2 + b3 a3 + b3 
#      5       6       7       6       7       8       7       8       9