2016-07-29 6 views
0

Я хочу применить функцию к массиву, используя индексы элемента массива. Например, если у меня есть массив ar, я хотел бы вычислить ar[x,y] <- x + y.Как применить функцию к индексам массива?

Использование вложенных для циклов это легко. Я хочу использовать функцию apply для выполнения этой задачи.

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

ответ

5

Если это двумерный массив или матрица, вы можете сделать:

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

Sorry Psidom, я думал, что ваш ответ был мой, и отредактировал неправильный. –

+0

@ 42- Нет проблем. Они выглядят слишком много :) – Psidom

0

Мы можем использовать outer

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