r - 基于多列上的 NA 过滤数据框

标签 r dataframe

我有以下数据框,我们将其称为df,并具有以下观察结果:

id   type   company
1    NA      NA
2    NA      ADM
3    North   Alex
4    South   NA
NA   North   BDA
6    NA      CA

我只想保留“类型”和“公司”列中没有 NA 的记录。

id   type   company
3    North   Alex
NA   North   BDA

我尝试过:

 df_non_na <- df[!is.na(df$company) || !is.na(df$type), ]

但这并没有奏效。

提前致谢

最佳答案

使用dplyr,还可以使用filter_at函数

library(dplyr)
df_non_na <- df %>% filter_at(vars(type,company),all_vars(!is.na(.)))

all_vars(!is.na(.)) 表示列出的所有变量都不能为 NA。

如果您想保留至少具有一个值的行,您可以这样做:

df_non_na <- df %>% filter_at(vars(type,company),any_vars(!is.na(.)))

关于r - 基于多列上的 NA 过滤数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33520854/

相关文章:

r - 从大数据集中选择R中邮政编码边界的范围

r - 将多个列从一个data.frame复制到另一个

python - 使用现有列标题将 Dataframe1 行合并到 Dataframe2 - Python Pandas

Python dataframe - 3 列中的数据值映射到其他 3 列下

Python pandas 线性回归 groupby

python - 比较两个 Pandas 数据框的行?

删除 R 中的重复行,即使顺序不同

使用应用函数重写循环

r - R 中类似 Tableau 的 Markdown 分组表

python - Pandas:根据条件删除每组的行