我想删除此数据框中的行:

a) 下面是我的示例数据框.

             gene hsap mmul mmus rnor cfam
1 ENSG00000208234    0   NA   NA   NA   NA
2 ENSG00000199674    0   2    2    2    2
3 ENSG00000221622    0   NA   NA   NA   NA
4 ENSG00000207604    0   NA   NA   1    2
5 ENSG00000207431    0   NA   NA   NA   NA
6 ENSG00000221312    0   1    2    3    2

基本上,我希望得到如下的数据帧.

             gene hsap mmul mmus rnor cfam
2 ENSG00000199674    0   2    2    2    2
6 ENSG00000221312    0   1    2    3    2

b) contain 100s in only some columns,所以我也可以得到这个结果:

             gene hsap mmul mmus rnor cfam
2 ENSG00000199674    0   2    2    2    2
4 ENSG00000207604    0   NA   NA   1    2
6 ENSG00000221312    0   1    2    3    2

推荐答案

同时判断complete.cases:

> final[complete.cases(final), ]
             gene hsap mmul mmus rnor cfam
2 ENSG00000199674    0    2    2    2    2
6 ENSG00000221312    0    1    2    3    2

na.omit更适合删除所有NA.complete.cases只包括数据帧的某些列,从而允许部分 Select :

> final[complete.cases(final[ , 5:6]),]
             gene hsap mmul mmus rnor cfam
2 ENSG00000199674    0    2    2    2    2
4 ENSG00000207604    0   NA   NA    1    2
6 ENSG00000221312    0    1    2    3    2

你的解决方案行不通.如果你坚持使用is.na,那么你必须这样做:

> final[rowSums(is.na(final[ , 5:6])) == 0, ]
             gene hsap mmul mmus rnor cfam
2 ENSG00000199674    0    2    2    2    2
4 ENSG00000207604    0   NA   NA    1    2
6 ENSG00000221312    0    1    2    3    2

但使用complete.cases则更清晰、更快.

R相关问答推荐

给定R中另一行中的值,如何插补缺失值

根据固定值范围在tible中添加新行

为什么当我try 在收件箱中使用合并功能时会出现回收错误?

如何将在HW上运行的R中的消息(错误、警告等)作为批处理任务输出

判断字符串中数字的连续性

使用tidyverse方法绑定行并从一组管道列表执行左连接

获取一个数据库框架的摘要,该数据库框架将包含一列数据库框架,

过滤器数据.基于两列的帧行和R中的外部向量

derrr mutate case_when grepl不能在R中正确返回值

在组中添加值增加和减少的行

从一个列表的框架中移除列表包装器

如何将SAS数据集的列名和列标签同时包含在r中GT表的表首?

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

如何在ggplot2中创建多个y轴(每个变量一个)

从数据创建数字的命名列表.R中的框

R中时间间隔的大向量与参考时间间隔的相交

将美学添加到ggploy中的文本标签

如何使用ggsurvfit包更改风险表中的标签名称?

如果缺少时间,如何向日期-时间列添加时间

使用相对风险回归计算RR