如果是要去除包含缺失值的行,直接使用na.omit()
函数就可以了,但是如果要去除含有缺失值的列呢?
经过搜索找到了一个相对比较简单的代码
https://stackoverflow.com/questions/12454487/remove-columns-from-dataframe-where-some-of-values-are-na
代码
首先是构造一份数据集
代码语言:javascript复制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复制dfpra
library(dplyr)
dfpra %>%
select_if(~any(is.na(.)))
这个代码是保留带有缺少值的列
image.png
如果是要删除带有缺失值的列在any函数前加一个感叹号就可以了
代码语言:javascript复制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复制x1<-c(1,2,3,4,5)
any(x1<0)
x2<-c(-1,2,3)
any(x2<0)
image.png