我有一个成对值但没有对称的矩阵,我的意思是,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进行比较以删除冗余元素,这是一个好方法吗?
由于
答案 0 :(得分:1)
您想对条目做什么&gt; 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