Matrix R:对称矩阵中特定元素的求和
如果我有一个相关矩阵,我知道我可以使用upper.tri或lower.tri对所有值求和,但是有没有一种方法可以对矩阵的特定部分求和 例如,5个变量的相关矩阵:Matrix R:对称矩阵中特定元素的求和,matrix,Matrix,如果我有一个相关矩阵,我知道我可以使用upper.tri或lower.tri对所有值求和,但是有没有一种方法可以对矩阵的特定部分求和 例如,5个变量的相关矩阵: > Matrix [,1] [,2] [,3] [,4] [,5] [1,] 0 4 3 1 2 [2,] 4 0 3 2 1 [3,] 3 3 0 2 1 [4,] 1 2 2 0 1 [5,]
> Matrix
[,1] [,2] [,3] [,4] [,5]
[1,] 0 4 3 1 2
[2,] 4 0 3 2 1
[3,] 3 3 0 2 1
[4,] 1 2 2 0 1
[5,] 2 1 1 1 0
如果前2个变量属于一个组,而3-5个变量属于另一个组,有没有办法只要求组间值的总和?e、 例如,3+3+1+2+2+1=12。这是一个冗长的答案,但希望能对你有所帮助
matrix <- matrix (c(0,4,3,1,2,4,0,3,2,1,3,3,0,2,1,1,2,2,0,1,2,1,1,1,0), nrow=5, ncol=5)
group <- list(group1=c(1,2), group2=c(3,4,5))
sum_matrix <- matrix(data <- rep(NA), nrow = length(group), ncol= length(group))
for (i in 1:length(group))
{
for(j in 1:length(group))
{
ifelse(i==j, sum_matrix[i,j]<- NA, sum_matrix[i,j] <- sum(matrix[group[[i]], group[[j]] ]) )
}
}
sum_matrix
sum(matrix[group2, group1])
sum(matrix[group1, group2])
matrix谢谢,这很有效。由于某种原因,我无法让最后几行工作,但“求和矩阵”的输出给出了我想要的答案。再简单一点——有没有简单的方法来求一组值的总和?e、 例如,对于第1组,它将是三角形上方或下方的所有三角形,因此4+3+3+1+2+2+1=16。