如何用R函数移除age、sex、race均为NA的数据行?
解决方法
以下是几种在R中仅移除age、sex、race三个字段同时为NA的数据行的实现方式:
使用dplyr包的filter函数(推荐,代码可读性高)
先确保安装并加载dplyr包,然后执行:# 若未安装dplyr先执行此句 # install.packages("dplyr") library(dplyr) df_clean <- df %>% filter(!(is.na(age) & is.na(sex) & is.na(race)))逻辑:通过
!(is.na(age) & is.na(sex) & is.na(race))筛选出"三个字段不同时为NA"的行。使用基础R的subset函数
无需额外安装包,直接用base R的subset实现:df_clean <- subset(df, !(is.na(age) & is.na(sex) & is.na(race)))通过统计NA数量筛选
统计每行中age、sex、race的NA个数,保留个数不等于3的行:df_clean <- df[rowSums(is.na(df[, c("age", "sex", "race")])) != 3, ]
内容的提问来源于stack exchange,提问作者Louis
相关产品推荐
相关产品推荐

