R语言 如何推算缺失值

R语言 如何推算缺失值

在这篇文章中,我们将讨论如何在R编程语言中归纳缺失值。

在大多数数据集中,可能会有缺失值,这是因为没有输入或由于某些错误。用另一个值来代替这些缺失值被称为数据归因。有几种归因方法。常见的包括用该列/特征的平均值、最小值或最大值来替代。不同的数据集和特征将需要一种归因方法。例如,考虑到一个公司的销售业绩的数据集,如果特征损失有缺失值,那么用最小值来替换就比较合理了。

正在使用的数据集

如何在R语言中推算缺失值?

代入一列

方法1 :用均值手动替代

让我们用这一整列数据的 平均值 来估算一列数据的缺失值,即marks1。

语法:

mean(x, trim = 0, na.rm = FALSE, …)

参数

  • x – 任何对象
  • trim – 在计算平均值之前要从x的每一端修剪的观测值
  • na.rm – FALSE,去除NA值

例子: 估算缺失值

# create a adataframe
data <- data.frame(marks1 = c(NA, 22, NA, 49, 75),
                   marks2 = c(81, 14, NA, 61, 12),
                   marks3 = c(78.5, 19.325, NA, 28, 48.002))
  
# impute manually
datamarks1[is.na(datamarks1)] <- mean(data$marks1, na.rm = T)  
  
data
Bash

输出

如何在R语言中推算缺失值?

方法2 :使用Hmisc库,用中位值进行归集

使用Hmisc库中的函数impute( ),让我们用这一整列的 中值 来估算mark2列的数据。

例子: 归纳缺失值

# install and load the required packages
  
install.packages("Hmisc")
library(Hmisc)
  
# create a adataframe
data <- data.frame(marks1 = c(NA, 22, NA, 49, 75),
                   marks2 = c(81, 14, NA, 61, 12),
                   marks3 = c(78.5, 19.325, NA, 28,
                              48.002))
  
# fill missing values of marks2 with median
impute(data$marks2, median)
Bash

输出

如何在R语言中推算缺失值?

用中值进行估算

方法3: 用一个特定的常数值进行估算

使用Hmisc库中的函数impute( ),让我们用一个常量值对数据中的mark2列进行估算。

例子: 剔除缺失值

# install and load the required packages
install.packages("Hmisc")
library(Hmisc)
  
# create a adataframe
data <- data.frame(marks1 = c(NA, 22, NA, 49, 75),
                   marks2 = c(81, 14, NA, 61, 12),
                   marks3 = c(78.5, 19.325, NA, 28, 
                              48.002))
  
# impute with a specific number
# replace NA with 2000
impute(data$marks3, 2000)  
Bash

输出

如何在R语言中推算缺失值?

用一个特定的常数值进行估算

对整个数据集进行模拟

这可以通过使用apply( )函数将每一列的中位数与NA进行置换。

语法

apply(X, MARGIN, FUN, …)

参数

  • X – 一个数组,包括一个矩阵
  • MARGIN – 一个向量
  • FUN – 要应用的函数

例子: 对整个数据集进行估算

# create a adataframe
data <- data.frame(marks1 = c(NA, 22, NA, 49, 75),
                   marks2 = c(81, 14, NA, 61, 12),
                   marks3 = c(78.5, 19.325, NA, 28, 
                              48.002))
  
# getting median of each column using apply() 
all_column_median <- apply(data, 2, median, na.rm=TRUE)
  
# imputing median value with NA 
for(i in colnames(data))
  data[,i][is.na(data[,i])] <- all_column_median[i]
  
data
Bash

输出

如何在R语言中推算缺失值?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册