前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >小技巧:R语言里删除带有缺失值的列

小技巧:R语言里删除带有缺失值的列

作者头像
用户7010445
发布2021-07-12 15:58:09
发布2021-07-12 15:58:09
8.3K00
代码可运行
举报
运行总次数:0
代码可运行

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

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

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

代码

首先是构造一份数据集
代码语言:javascript
代码运行次数:0
运行
复制
dfpra<-data.frame(A=1:5,
                  B=c(1:4,NA),
                  D=c(NA,NA,1:3))
dfpra

image.png

实现目的需要借助dplyr这个R包

用到的是select_if()函数

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

代码语言:javascript
代码运行次数:0
运行
复制
dfpra
library(dplyr)
dfpra %>% 
  select_if(~any(is.na(.)))

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

image.png

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

代码语言:javascript
代码运行次数:0
运行
复制
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 比如判断一组数据中是否存在负数

代码

代码语言:javascript
代码运行次数:0
运行
复制
x1<-c(1,2,3,4,5)
any(x1<0)
x2<-c(-1,2,3)
any(x2<0)

image.png

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档