R语言R语言

R语言缺失数据处理2021.2.2

2021-02-02  本文已影响0人  R语言_茶味先生

一、缺失数据

缺失数据的分类

统计学家通常将缺失数据分为三类。它们都用概率术语进行描述,但思想都非常直观。我们将用sleep研究中对做梦时长的测量(有12个动物有缺失值)来依次阐述三种类型。

缺失值的定义

在R中, NA代表缺失值, NA是不可用,not available的简称,用来存储缺失信息。这里缺失值NA表示没有,但注意没有并不一 定就是0 , NA是不知道是多少,也能是0 ,也可能是任何值,缺失值和值为零是完全不同的。

含缺失值的数据集进行计算的方法

1.用NA remove条件语句即可,例如求和公式中添加na.rm=TRUE就可以把缺失值去除,向量个数也对应减少。

a<-c(NA,1:49)
sum(a,na.rm=TRUE)

如果数据集中包含NA,那么所有的计算都会有问题。发现值为NA时,我们再使用na.rm进行处理,这样的操作是滞后的,所以需要在处理数据之前就知道数据集中是否包含了缺失值。R语言提供了is.na()来进行逻辑测试,如果数据集中含NA值,对应位置返回TRUE,其余位置返回FALSE。
2.na.rm只是函数中的一个参数,如果想去掉数据集中的这些缺失值,生成一个没有缺失值的数据集,这时可以使用na.omit函数

c<-c(NA,1:20,NA,NA)
d<-na.omit(c)
图1 输出结果
na.omit(sleep)
图2 输出结果

处理完之后可以输入length来观察数据集omit函数处理前后的行数变化,并可以从中获得删除了多少行包含NA的数据

length(rownames(sleep))
length(rownames(na.omit(sleep)))

计算缺失值NA

sum(is.na(数据集名称))
rowSums(数据集名称)
colSums(数据集名称)

处理缺失值包的介绍

图3 处理缺失值包的介绍

二、其他缺失数据

1、缺失数据NaN,代表不可能的值;
2、Inf表示无穷,分为正无穷Inf和负无穷-Inf,代表无穷大或者无穷小。

同样的,R语言提供了is.nan()/is.infinite()来进行逻辑测试,如果数据集中含NaN值/Inf值,对应位置返回TRUE,其余位置返回FALSE。

三、不同缺失值之间的差别

1、NA是存在的值,但是不知道是多少;
2、NaN是不存在的;
3、Inf存在,是无无穷大后者无穷小,但是表示不可能的值。

上一篇下一篇

猜你喜欢

热点阅读