gpt4 book ai didi

r - 迭代 R 中矩阵的列

转载 作者:行者123 更新时间:2023-12-04 11:25:57 25 4
gpt4 key购买 nike

我有一个功能

function (x, y) { ... }

期望两个向量 xy并返回从它们计算出来的值。

我想将此函数成对应用于两个矩阵的列向量 xsys .来自 R, iterating over the row vectors of a matrix我找到了 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)

最佳答案

还没有人提到asplit (在 R 3.6.0 中添加) - 专门为此案例制作的功能。

例子:

mapply(dot, asplit(xs, 2), asplit(ys, 2))

相同但使用行:
mapply(dot, asplit(xs, 1), asplit(ys, 1))

关于r - 迭代 R 中矩阵的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58031975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com