2
我正在尝试编写一个函数,该函数将使用花式距离估计(dcorr
,布朗距离)创建相关矩阵。更一般地说,我想为通用“相关”矩阵编写代码,您可以在其中插入任何距离估计器。使用新颖的距离函数创建相关矩阵
我的数据格式化为列是变量,行是观察值。
我遇到了我的基本代码问题。我的算法如下:
- 使用适用于采用可变
- 通行证功能,将再次参加适用于整个矩阵
- 此时你应该有两个变量对
- 使用
na.omit
删除丢失的意见(必要dcorr) - 计算dcorr
我希望这将重新出现在相关矩阵中,但我在基本变量管理方面遇到了很多问题。我很难将变量传递给apply函数。特别是,我想传递一个是在第一拉列申请,并把它传递给第二应用(即应用于整个原始矩阵)
我的代码:
dcormatrix <- function(Matrix){
dcorhelper <- function (Col1){
as.matrix(apply(Matrix,2,function(Col2){
B <- na.omit(cbind(Col1,Col2))
dcor(B[,1],B[,2],index=1)
},Col1=Col1))
}
apply(Matrix,2,dcorhelper(),Matrix=Matrix)
}
任何想法?我确信有一个简单的方法来做到这一点。
为什么不使用'dist()'来做到这一点? – Andrie
你可以尝试在你的函数中插入'browser()',看看发生了什么。这会让你对你的变量以及它们传递的方式有所了解。 –