如何简化这个程序?

kan*_*npu 2 loops for-loop r function matrix

主要功能如下代码:

#f is a function that has two parameters and returns one value:
f <- function(a, b) {
   a * b
}

#x is a's value group
x <- c(1,2,3,4)
#y is b's value group
y <- c(4,5,6)
Run Code Online (Sandbox Code Playgroud)

我想获得f(x,y)的所有可能值,结果应该是一个明确的矩阵.现在我使用for循环:

m <- c(NULL)
for (a in x) {
   for (b in y) {
       m <- c(m, c(a, b))
    }
}
m <- matrix(m, 3, 4)
Run Code Online (Sandbox Code Playgroud)

但它看起来真的非常愚蠢.任何人都可以提供更简单的方法吗?

谢谢.

Exp*_*teR 5

outer(x, y, f)
#     [,1] [,2] [,3]
#[1,]    4    5    6
#[2,]    8   10   12
#[3,]   12   15   18
#[4,]   16   20   24
outer(y, x, f)
#     [,1] [,2] [,3] [,4]
#[1,]    4    8   12   16
#[2,]    5   10   15   20
#[3,]    6   12   18   24
Run Code Online (Sandbox Code Playgroud)