我在 R 中的矩阵上使用tcrossprod函数。它对我的数据及其转置进行叉积。即数据%*% t(数据)。
问题是,我不希望单个操作(数据中的行和 t(data) 中的列之间)是乘法运算。是否可以在其中指定我自己的函数,以便实现相同的算法,但它会执行其他操作而不是乘法。
我现在通过遍历矩阵并执行所需的操作来实现相同的结果,但是循环使这种方法变慢。
这是我目前正在做的事情(但将 * 操作替换为其他内容):
count<-nrow(data)
output<-sapply(1:count, function(x){
sapply(1:count, function(y){
sum((data[x,]+data[y,])*abs(data[x,]-data[y,]))
})
})
任何帮助将非常感激。