R语言如何删除数据集指定列含N/A字符串的对应行
解决方案
方案1:读入CSV时直接预处理(推荐)
读入数据时通过na.strings参数将csv自带的"N/A"字符串识别为R标准空值NA,后续处理更方便:
# 读入数据时指定要识别为空值的字符串 df <- read.csv("Video_Games_Sales_as_at_22_Dec_2016.csv", na.strings = c("", "NA", "N/A")) # 过滤掉Year_of_Release列为空的行 # 基础R写法 df_clean <- df[!is.na(df$Year_of_Release), ] # 若使用dplyr可写为 library(dplyr) df_clean <- df %>% filter(!is.na(Year_of_Release))
方案2:已读入数据的情况下直接过滤
如果已经完成数据读入不想重新加载,直接匹配"N/A"字符串过滤即可:
# 基础R写法 df_clean <- df[df$Year_of_Release != "N/A", ] # dplyr写法 library(dplyr) df_clean <- df %>% filter(Year_of_Release != "N/A")
操作逻辑说明:
你之前使用na.omit()无效的核心原因是原始CSV中的"N/A"是普通字符串,不属于R默认识别的NA空值类型,两种方案分别从读入阶段和已读入场景出发,精准匹配你遇到的问题。
内容的提问来源于stack exchange,提问作者billroggio
相关产品推荐
相关产品推荐

