基于最大距离从距离矩阵中提取数据

4

我有一个基因距离的距离矩阵,其中包含对隔离物之间的基因距离进行了测量:

structure(c(0, 0.5, 0, 0.5, 0, 0.3, 0, 0.3, 0), .Dim = c(3L, 
3L), .Dimnames = list(c("A", "B", "C"), c("A", "B", "C")))

我已经制作了一个包含约5000个隔离物的热图,但是通过阅读标签从中提取有趣的区域太大了,因此我想要过滤我的距离矩阵,例如获取所有距离小于0.5的隔离物对。

我的输出可能如下所示:

B    C    0.3

我该如何实现这个?

1个回答

0

像这样吗?

m <- structure(
  c(0, 0.5, 0, 0.5, 0, 0.3, 0, 0.3, 0),
  .Dim = c(3L,
           3L),
  .Dimnames = list(c("A", "B", "C"), c("A", "B", "C"))
)
# we convert matrix m to long format
m2 <-
  matrix(m, dimnames = list(t(outer(
    colnames(m), rownames(m), FUN = paste
  )), NULL))
# and finally we subset it
(vec <- m2[m2[, 1] < 0.5,])
#> A A A C B B B C C A C B C C 
#> 0.0 0.0 0.0 0.3 0.0 0.3 0.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接