子集矩阵,其中任何元素满足条件

时间:2015-09-28 23:58:35

标签: r matrix

我有一个类似

的矩阵
bar <- matrix(rnorm(25), 5, 5)
rownames(bar)<- letters[1:5]
colnames(bar)<- LETTERS[1:5]
bar
          A          B           C          D          E
a 0.2584448  0.7749999  2.87730628 -0.6975622 -0.1932791
b 0.1103942 -1.6934814  1.93550788 -0.3174811  0.8109865
c 3.1351451 -0.3576796 -0.04163874  0.3428915  0.7812248
d 1.8645636  0.1902946 -1.08881511  1.9995945 -1.0550882
e 1.5714962  1.1754796 -1.19862113  0.4539959  0.6764810

我想把它放到circlize中,但只适用于值为&gt;的矩阵元素。 1

有没有办法将此矩阵限制为仅满足类似条件的单元格,同时保留行名和列名?

2 个答案:

答案 0 :(得分:0)

您可以使用NA

替换
bar[!bar>1]<-NA

答案 1 :(得分:0)

如果您只想删除小于1的值,则可以执行以下操作:

bar[bar < 1] = 0
chordDiagram(bar)

enter image description here

如果您仍想保留这些值的位置(保留这些值的空间而不显示它们),则需要将这些值的颜色设置为白色且完全透明。 E.g:

col_bar = bar
col_bar[bar >= 1] = "#FF000080"
col_bar[bar < 1] = "#FFFFFF00"
chordDiagram(bar, col = col_bar)

enter image description here