对R中矩阵的列应用成对函数

对R中矩阵的列应用成对函数,r,R,我想在大矩阵的所有列上应用一些成对相关估计。因为我在处理大尺寸的问题,所以我正在寻找一个可能对这里有所帮助的函数。我一直在试验apply功能,但我还没走多远,所以非常感谢所有的帮助 require(ccaPP) require(mvtnorm) d<- 10 Sigma <- matrix(0.2, nrow = d, ncol = d) diag(Sigma) <- 1 #Data generation X <- rmvnorm(100, sigma = Sigma)

我想在大矩阵的所有列上应用一些成对相关估计。因为我在处理大尺寸的问题,所以我正在寻找一个可能对这里有所帮助的函数。我一直在试验
apply
功能,但我还没走多远,所以非常感谢所有的帮助

require(ccaPP)
require(mvtnorm)
d<- 10
Sigma <- matrix(0.2, nrow = d, ncol = d)
diag(Sigma) <- 1
#Data generation
X <- rmvnorm(100, sigma = Sigma) # 100 x d matrix
Q <- apply(X, 2, FUN = corQuadrant, consistent = TRUE)
require(ccaPP)
require(mvtnorm)

d嵌套for循环是一种方式:

require(ccaPP)
require(mvtnorm)
d<- 10
Sigma <- matrix(0.2, nrow = d, ncol = d)
diag(Sigma) <- 1
#Data generation
X <- rmvnorm(100, sigma = Sigma) # 100 x d matrix
Q <- matrix(nrow = d,ncol = d)
for (i in 1: (d-1)) { 
  for (j in (i+1):d) {
    Q[i,j] <- corQuadrant( X[,i], X[,j] ) 
  }
}
require(ccaPP)
require(mvtnorm)

d@MichaelChirico有了它们,这就是函数
rmvnorm
的作用。它从多元正态分布生成数据。预期输出是什么?@MichaelChirico好吧,如果应用
cor
函数,将返回一个对称矩阵,其对角线为1。希望类似的东西,但我可以处理它,即使它是一个列表或类似的东西。重要的是要考虑所有的对。我想你自己已经回答了这个问题:JohnK。cor()正是您想要的。如果确实需要,您可以在以后删除相关矩阵的下半部分和对角线,并在必要时选择将其转换为稀疏矩阵以节省内存。@dww否,
cor
在这里不合适,因为我正在使用的函数,
corQuadrant
执行完全不同的操作。而且是成对的。这就是为什么我希望将其扩展到矩阵。有什么建议吗?