我有以下数据框,我们将其称为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/