迭代 R 中矩阵的列

Cod*_*ice 5 r matrix

我有一个功能

function (x, y) { ... }
Run Code Online (Sandbox Code Playgroud)

它需要两个向量xy返回一个从它们计算出来的值。

我想将此函数成对地应用于两个矩阵xs和的列向量ys。从R 中,迭代我找到的矩阵的行向量,mapply()但这似乎将函数成对地应用于矩阵的每个元素。相反,我想将该函数应用于整个列。我该怎么做呢?

为了澄清起见,这是一个人为的例子:

xs <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 3, ncol = 2)
ys <- matrix(c(25, 26, 27, 28, 29, 30), nrow = 3, ncol = 2)
dot <- function(x, y) sum(x*y)
Run Code Online (Sandbox Code Playgroud)

Joh*_*man 2

这是一种方法:

xs <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 3, ncol = 2)
ys <- matrix(c(25, 26, 27, 28, 29, 30), nrow = 3, ncol = 2)
dot <- function(x, y) {
  sum(x*y)
}

dots <- sapply(1:ncol(xs),function(i) dot(xs[,i],ys[,i])) #dots = c(158, 437)
Run Code Online (Sandbox Code Playgroud)