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值

  1. 利用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
  1. 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
  • 19
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值