美文网首页
R语言如何删除包含缺失值的列

R语言如何删除包含缺失值的列

作者: 小明的数据分析笔记本 | 来源:发表于2021-06-01 10:04 被阅读0次

    如果是要去除包含缺失值的行,直接使用na.omit()函数就可以了,但是如果要去除含有缺失值的列呢?

    经过搜索找到了一个相对比较简单的代码

    https://stackoverflow.com/questions/12454487/remove-columns-from-dataframe-where-some-of-values-are-na

    代码

    首先是构造一份数据集
    dfpra<-data.frame(A=1:5,
                      B=c(1:4,NA),
                      D=c(NA,NA,1:3))
    dfpra
    
    image.png
    实现目的需要借助dplyr这个R包

    用到的是select_if()函数

    这个具体的写法怎么解释我暂时还没有搞明白,先背下来再说吧

    dfpra
    library(dplyr)
    dfpra %>% 
      select_if(~any(is.na(.)))
    

    这个代码是保留带有缺少值的列

    image.png

    如果是要删除带有缺失值的列在any函数前加一个感叹号就可以了

    dfpra<-data.frame(A=1:5,
                      B=c(1:4,NA),
                      D=c(NA,NA,1:3))
    dfpra
    library(dplyr)
    dfpra %>% 
      select_if(~!any(is.na(.)))
    
    image.png

    any()函数的用法

    通过?any命令查看帮助文档,返回内容是

    image.png

    Given a set of logical vectors, is at least one of the values true?

    判断数据集是否至少存在一个数据满足指定的条件,返回值是TRUE或者FALSE 比如判断一组数据中是否存在负数

    代码

    x1<-c(1,2,3,4,5)
    any(x1<0)
    x2<-c(-1,2,3)
    any(x2<0)
    
    image.png

    欢迎大家关注我的公众号

    小明的数据分析笔记本

    小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

    相关文章

      网友评论

          本文标题:R语言如何删除包含缺失值的列

          本文链接:https://www.haomeiwen.com/subject/gekwsltx.html