R语言剔除包含NA值的行
·
在数据分析的过程中,数据的前处理是非常重要的。数据中出现“NA”是非常常见的,“NA”指“Not Available”,出现NA常常会影响我们进行数据分析,这是因为NA是会传染的。
NA值的影响
- 看以下例子:
> a <- c(1,2,3,4,5)
> mean(a)
[1] 3
如果出现NA,情况就不一样了
> a <- c(1,2,3,4,5,NA)
> mean(a)
[1] NA
由此可见,NA值会影响到我们进行统计分析,那么如何去除NA值或者在分析的过程中忽略NA值呢?
去除行NA值
- 利用complete.cases()函数
complete.cases()函数的效果如果该行或该列存在任何NA值,都会剔除该行或列,使用complete.cases()后效果如下:
> # 创建数据框
mydata <- data.frame(
name=c("M","T","J","H","F"),
sex=c("F","M",NA,"M","M"),
score=c(90,85,75,89,NA))
> mydata
name sex score
1 M F 90
2 T M 85
3 J <NA> 75
4 H M 89
5 F M NA
> mydata<-mydata[complete.cases(mydata),]
> mydata
name sex score
1 M F 90
2 T M 85
4 H M 89
- dplyr包
dplyr包filter()函数,也可实现筛选不包含缺失值的行
dplyr::filter(df, !is.na(columnname))
> dplyr::filter(mydata, !is.na(score))
name sex score
1 M F 90
2 T M 85
3 J <NA> 75
4 H M 89
新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐


所有评论(0)