R 删除平方矩阵中与相应行相加为零的列
我有一个二元转移矩阵。我想删除与总和为零的列关联的行。例如,如果R 删除平方矩阵中与相应行相加为零的列,r,matrix,R,Matrix,我有一个二元转移矩阵。我想删除与总和为零的列关联的行。例如,如果 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
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
如果
行名
和列名
顺序相同
indx <- !!colSums(a)
a[indx,indx]
# A C D
#A 0 0 1
#C 0 1 1
#D 0 1 0
indx使用名称选择列和行
> ind <- colnames(a[,!!colSums(a)])
> a[ind, ind]
A C D
A 0 0 1
C 0 1 1
D 0 1 0
>inda[ind,ind]
A C D
零零一
c01
D 0 1 0
@Daniel McEwen没问题,很高兴这有帮助。