1

我有一个具有成对值但没有对称的矩阵,我的意思是,AxB 与 BxA 不同。这是一个虚拟示例:

    A    B    C    D    E
A    1  0.7  0.8  0.8  0.9
B  0.2    1  0.2  0.8  0.3
C  0.3  0.4    1  0.5  0.6
D  0.4  0.9  0.8    1  0.4
E  0.8  0.2  0.8  0.8    1

我需要知道有多少[i,j]比较高于或等于 0.7,以及有多少比较[j,i]也高于0.7以删除高冗余元素。在示例中,元素A的元素数量较多,B, C, D, and E应在进一步分析中将其删除。我考虑过table为此使用命令

table1 <- apply(M, 1, table)
table2 <- apply(M, 2, table)

然后将 table1 与 table2 进行比较以删除冗余元素,这会是一个好方法吗?

谢谢

4

1 回答 1

1

您想对 > 0.7 的条目做什么?将它们设置为 NA?删除它们?无论如何,这应该让你朝着正确的方向前进:

#Assumes your data is named x
> which(x > 0.7, arr.ind = TRUE)
#----
  row col
A   1   1
E   5   1
B   2   2
D   4   2
...

#Set values = NA
x[which(x>0.7, arr.ind = TRUE)] <- NA
#---
    A   B   C   D   E
A  NA 0.7  NA  NA  NA
B 0.2  NA 0.2  NA 0.3
C 0.3 0.4  NA 0.5 0.6
D 0.4  NA  NA  NA 0.4
E  NA 0.2  NA  NA  NA
于 2013-06-04T02:48:03.960 回答