【发布时间】:2017-02-15 15:55:49
【问题描述】:
我有一个这样的矩阵:
M <- rbind(c("CD4", "CD8"),
c("CD8", "CD4"),
c("DN", "CD8"),
c("CD8", "DN"),
c("CD4", "DN"),
c("DN", "CD4"))
第 1 和第 2 是重复的,第 3 和第 4 是重复的,第 5 和第 6 是重复的,因为它们包含相同的元素(不管它是什么顺序)。
我知道下面的代码可以做到。
Msort <- t(apply(M, 1, sort))
duplicated(Msort)
我想得到这个逻辑向量:
> duplicated(Msort)
[1] FALSE TRUE FALSE TRUE FALSE TRUE
但是如果矩阵很大,比如10000行10000列,如何有效地处理这种情况呢?
谢谢。
【问题讨论】:
-
Data.Table 是你的朋友!我认为它的概述很好here。
-
你能测试一下
is.mutual(graph(t(M))) -
@d.b 这不起作用。
-
@d.b 我已经安装了 igraph。这是结果。
> is.mutual(graph(t(M))) [1] TRUE TRUE TRUE TRUE TRUE TRUE -
@BioChemoinformatics,我不确定我是否在帮助你,但
get.edgelist( as.undirected( graph(t(M))))似乎给了你独特的行。
标签: r