gpt4 book ai didi

R:在没有 for 循环的情况下将函数应用于矩阵的所有行对

转载 作者:行者123 更新时间:2023-12-04 10:21:09 26 4
gpt4 key购买 nike

我想要矩阵中所有行的所有成对比较,显然 double for 循环可以工作,但对于大型数据集来说非常昂贵。

我查找了类似 apply() 的隐式循环等,但不知道如何避免内循环。

如何实现?

最佳答案

我假设您正在尝试对矩阵的所有行对进行某种类型的比较。
您可以使用 outer()遍历所有行索引对,并应用向量化
每个行对的比较函数。例如。您可以计算所有行对之间的平方欧几里得距离,如下所示:

m <- matrix(1:12,4,3)     
> outer(1:4,1:4, FUN = Vectorize( function(i,j) sum((m[i,]-m[j,])^2 )) )
[,1] [,2] [,3] [,4]
[1,] 0 3 12 27
[2,] 3 0 3 12
[3,] 12 3 0 3
[4,] 27 12 3 0

关于R:在没有 for 循环的情况下将函数应用于矩阵的所有行对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6269526/

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