我有一个二元转换矩阵。我想删除与总和为零的列关联的行。例如,如果
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
答案 0 :(得分:1)
如果rownames
和colnames
的顺序相同
indx <- !!colSums(a)
a[indx,indx]
# A C D
#A 0 0 1
#C 0 1 1
#D 0 1 0
答案 1 :(得分:1)
使用名称来选择列和行
> ind <- colnames(a[,!!colSums(a)])
> a[ind, ind]
A C D
A 0 0 1
C 0 1 1
D 0 1 0