【发布时间】:2015-07-14 03:19:14
【问题描述】:
我有一个矩阵,它的元素是 0, 1,2,NA!
我想删除它们的 colsum 等于 0 或 NA 的列!我想从原始矩阵中删除这些列并为这些列创建一个新矩阵(非零列和)!
(我认为在计算 colsum 时,我考虑了 na.rm=True 并删除 colsum=0 的列,因为如果我考虑 na.rm=False,我的 colsum 的所有值都会得到 NA)
这是我的矩阵格式:
mat[1:6,1:6]
1:11059017 1:11088817 1:11090640 1:11099385 1:1109967 1:111144756
0 0 0 0 NA 0
0 0 0 0 0 NA
1 NA 2 0 NA 0
0 0 0 1 0 2
2 0 0 0 0 0
0 0 NA 0 0 0
Summat <- colSums(mat,na.rm = TRUE)
head(summat)
1:11059017 1:11088817 1:11090640 1:11099385 1:1109967 1:111144756
[,1] 3 0 2 1 0 2
第 2 列和第 5 列的 colsum=0,所以我应该将它们从 met 中删除,并将其余列保留在另一个矩阵中。
我的输出应该如下所示:
met-nonzero
1:11059017 1:11090640 1:11099385 1:111144756
0 0 0 0
0 0 0 NA
1 2 0 0
0 0 1 2
2 0 0 0
0 NA 0 0
您能告诉我该怎么做吗?
数据:
structure(c(0L, 0L, 1L, 0L, 2L, 0L, 0L, 0L, NA, 0L, 0L, 0L, 0L,
0L, 2L, 0L, 0L, NA, 0L, 0L, 0L, 1L, 0L, 0L, NA, 0L, NA, 0L, 0L,
0L, 0L, NA, 0L, 2L, 0L, 0L), .Dim = c(6L, 6L), .Dimnames = list(
NULL, c("X1.11059017", "X1.11088817", "X1.11090640", "X1.11099385",
"X1.1109967", "X1.111144756")))
谢谢
【问题讨论】:
标签: r