gpt4 book ai didi

r - 将函数应用于所有行(或列)对的有效方法

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

给定一个矩阵(可以是非常大的维度),我如何有效地计算结果矩阵 d,每个值定义为 d[i,j] = fun(x[ , c(i,j)]) 对于一些给定的函数 fun

下面是一个例子

x = matrix(1:30, 5)
d = matrix(,ncol(x), ncol(x)) ## the output matrix
for(i in 1:ncol(x)) ## I use a for loop here, should find a more efficient way
for(j in 1:ncol(x))
d[i,j] = sum(apply(x[,c(i,j)], 1, min))

最佳答案

sapply 循环会稍微快一些

sapply(1:NCOL(x), function(i) sapply(1:NCOL(x), function(j){
sum(apply(x[, c(i, j)], 1, min))
}))
# [,1] [,2] [,3] [,4] [,5] [,6]
#[1,] 15 15 15 15 15 15
#[2,] 15 40 40 40 40 40
#[3,] 15 40 65 65 65 65
#[4,] 15 40 65 90 90 90
#[5,] 15 40 65 90 115 115
#[6,] 15 40 65 90 115 140

关于r - 将函数应用于所有行(或列)对的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57616017/

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