Если вы просто напишите какую-либо функцию, вы можете получить ошибки при вызове 'external', поэтому сначала выполните векторизацию.
fn <- function(i,j){ ... }
A <- outer(1:rows, 1:cols, Vectorize(fn))
Пример, где это не будет работать без векторизации:
fn <- function(i,j){
return(prop.test(c(tables[i,1], tables[j,1]), c(sum(tables[i,]), sum(tables[j,])))$p.value)
}