如何将函数应用于数组的索引?

How do I apply a function to the indices of an array?

我想使用数组元素的索引将函数应用于数组。例如,如果我有一个数组 ar,我想计算 ar[x,y] <- x + y

使用嵌套的 for 循环很容易。我想使用一个应用函数来完成这个任务。

ar <- array(data = 1, dim = c(2,2))
for(i in 1:2 ){
  for(j in 1:2){
    ar[i,j] <- i +j
  }
}
ar

如果是二维数组,或者矩阵,可以这样:

row(ar) + col(ar)
#      [,1] [,2]
# [1,]    2    3
# [2,]    3    4

我们可以使用outer

outer(1:nrow(ar), 1:ncol(ar), FUN = `+`)
#     [,1] [,2]
#[1,]    2    3
#[2,]    3    4