处理R编程中的缺失值

处理R编程中的缺失值

顾名思义,缺失值是那些不知道的元素。NA或NaN是保留字,表示R编程语言中的缺失值,用于未定义的q算术运算。

R – 处理缺失值

缺失值在生活中很实用。例如,电子表格中的一些单元格是空的。如果尝试了一个无法理解或不可能的算术运算,那么就会出现NA。

处理R语言中的缺失值

R语言中的缺失值可以通过使用一些预定义的函数来处理。

is.na() 查找缺失值的函数。

这个函数返回一个逻辑向量,表示所有存在的NA值。它返回一个布尔值。如果一个向量中存在NA,则返回TRUE,否则返回FALSE。

x<- c(NA, 3, 4, NA, NA, NA)
is.na(x)

输出

[1]  TRUE FALSE FALSE  TRUE  TRUE  TRUE

is.nan() 函数用于查找缺失值

这个函数返回一个逻辑向量,表示所有存在的NaN值。它返回一个布尔值。如果NaN存在于一个向量中,它返回TRUE,否则返回FALSE。

x<- c(NA, 3, 4, NA, NA, 0 / 0, 0 / 0)
is.nan(x)

输出

[1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE

缺失值的属性

  • 对于测试对象是NA的,使用is.na()。
  • 对于测试NaN的对象,使用is.nan()。
  • 有一些类,NA是在这些类之下的。因此,整数类有整数类型NA,字符类有字符类型NA,等等。
  • 一个NaN值被计入NA,但反之则无效。

创建一个有一个或多个NA的向量也是可能的。

x<- c(NA, 3, 4, NA, NA, NA)
x

输出

[1] NA  3  4 NA NA NA

删除NA或NaN值

有两种方法可以去除缺失的值。

提取除NA或NaN值以外的值。

例1 :

x <- c(1, 2, NA, 3, NA, 4)
d <- is.na(x)
x[! d]

输出

[1] 1 2 3 4

例2 :

x <- c(1, 2, 0 / 0, 3, NA, 4, 0 / 0)
x
x[! is.na(x)]

输出

[1]   1   2 NaN   3  NA   4 NaN
[1] 1 2 3 4

也可以使用名为 complete.cases() 的函数。这个函数也适用于数据框架。

缺失值过滤函数

R语言中的建模函数承认一个 na.action 参数,该参数为函数提供了关于其响应的指示,如果NA出现在它的方式中。

因此,这种方式的函数调用缺失值过滤函数之一。缺失值过滤函数改变了数据集,在新的数据集中,NA的值已经被改变。默认的缺失值过滤函数是 na.otmit 。 它省略了每一条包含甚至一个NA的行。其他一些缺失值过滤函数有。

  • na.省略 – 省略每一条含有NA的记录
  • na.fail – 如果遇到NA,则停止并不继续。
  • na.exclude – 排除每条含有甚至一个NA的记录,但保留其原始位置的记录
  • na.pass – 忽略NA并通过它
# Creating a data frame
df <- data.frame (c1 = 1:8,
                  c2 = factor (c("B", "A", "B", "C",
                                 "A", "C", "B", "A")))
 
# Filling some NA in data frame
df[4, 1] <- df[6, 2] <- NA
 
# Printing all the levels(NA is not considered one)
levels(df$c2)
 
# fails if NA is encountered
na.fail (df)
 
# excludes every row containing even one NA
na.exclude (a)

输出

[1] "A" "B" "C"
Error in na.fail.default(df) : missing values in object
Calls: na.fail -> na.fail.default
Execution halted

特殊情况

有两种特殊情况下,NA的表示或呈现方式不同。

  • 因子向量 – 是指在因子向量中显示的缺失值的符号。
  • NaN – 这只是NA的一种特殊情况。当一个算术运算产生的结果不是一个数字时,它就会显示出来。例如,零除以零会产生NaN。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程