我的问题是否与之前的问题非常相似(Remove rows with NAs (missing values) in data.frame)。我想以这样的方式过滤我的矩阵,即只有NA的所有列都将消失。我希望列中包含NA和数字的混合。因此,在下面的示例中,我想删除名为 mmul 和 cfam 的列,并保留其余部分。
gene hsap mmul mmus rnor cfam
1 ENSG00000208234 0 NA NA NA NA
2 ENSG00000199674 0 NA 2 2 NA
3 ENSG00000221622 0 NA NA NA NA
4 ENSG00000207604 0 NA NA 1 NA
5 ENSG00000207431 0 NA NA NA NA
6 ENSG00000221312 0 NA 2 3 NA
我希望我的新矩阵看起来像这样:
gene hsap mmus rnor
1 ENSG00000208234 0 NA NA
2 ENSG00000199674 0 2 2
3 ENSG00000221622 0 NA NA
4 ENSG00000207604 0 NA 1
5 ENSG00000207431 0 NA NA
6 ENSG00000221312 0 2 3
答案 0 :(得分:1)
您正在寻找all(is.na())
:
DF = data.frame(Col1 = c(NA,NA),Col2 = c(1,1));
DFOut = DF[!apply(DF,2,function(x) all(is.na(x)))]