在R中筛选数据集:保留Variable3含NA的国家全部记录
筛选含NA国家的全部记录解决方案
方法一:用dplyr包(更简洁直观)
先加载dplyr,按国家分组后筛选出组内存在NA的国家,保留所有记录:
library(dplyr) # 替换成你的数据框名称 result_df <- df %>% group_by(CountryName) %>% filter(any(is.na(`Variable 3`))) %>% ungroup()
any(is.na(Variable 3))会检查每个国家的所有记录里,是否至少有一条的Variable3是NA,满足条件的整个国家的记录都会被保留。
方法二:基础R实现
先找出所有存在NA的国家,再筛选原数据中这些国家的全部记录:
# 提取至少有一条Variable3为NA的国家 target_countries <- unique(df$CountryName[is.na(df$`Variable 3`)]) # 筛选目标国家的所有记录 result_df <- df[df$CountryName %in% target_countries, ]
注意:列名带空格的话,要用反引号`包裹,比如`Variable 3`,避免R报错。
内容的提问来源于stack exchange,提问作者dkolkin
相关产品推荐
相关产品推荐

