在R中,迭代矩阵的行向量。

4

我有一些向量vect,我想要遍历一个矩阵的行向量v并计算:

cov(v, vect)

我尝试过:

for(vect in mat2)     #where mat2 is a 215 by 31 matrix

然而,每个向量似乎都是一个值为1的标量。

  1. 我如何迭代矩阵的行向量?
  2. 为了更好地计算 cov(v, vect) 的总和,其中 v 是行向量,我该如何使用高阶函数 left-foldright-fold

你真的读过 ?for 吗?你需要仔细思考一下自己在做什么。 - Carl Witthoft
2个回答

5

你是否正在寻找应用

apply(mat2, 1, function(v)cov(v,vect))

可能我正在寻找cov(v, vect)的总和。 - CodeKingPlusPlus
不,vect是某个任意向量(用于监督),而mat2中的每个向量v都具有与vect相同的31个维度。 - CodeKingPlusPlus
1
我想对mat2中的每个行向量v求和covariance(v, vect)。我认为你可能是指协方差矩阵,但我更看作相应协方差的向量,或者是相应协方差的列表。 - CodeKingPlusPlus
也许我需要先构建这个协方差向量? - CodeKingPlusPlus
1
当然,两个向量的cov不会返回一个矩阵。您是指这个吗:sum(apply(mat2, 1, function(v)cov(v,vect))) - user1981275

3
如果我理解得正确,vect是一个与mat2分开的向量:
apply(mat2, 1, function(v) cov(v, vect))

apply函数允许您在行(如果第二个参数为1)或列(如果为2)或更高维度(如果>2)上应用任意函数。它比使用循环更快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接