从方形矩阵中删除总和为零的列以及相应的行

我有一个二元转换矩阵.我想删除与总和为零的列关联的行.例如,如果

  A B C D E
A 0 0 0 1 0
B 1 0 0 1 0
C 0 0 1 1 0
D 0 0 1 0 0
E 0 0 1 1 0

B列和E总和为零.我知道如何摆脱像这样的列,

> a.adj=a[,!!colSums(a)]
> a.adj
  A C D
A 0 0 1
B 1 0 1
C 0 1 1
D 0 1 0
E 0 1 1

但是我怎样才能同时删除B行和E行

 A C D
A 0 0 1
C 0 1 1
D 0 1 0

最佳答案 如果rownames和colnames的顺序相同

indx <- !!colSums(a)
a[indx,indx]
#  A C D
#A 0 0 1
#C 0 1 1
#D 0 1 0
点赞