暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

缺失值填补|插值法、均值法、邻近法

3662
点击关注了解更多哦

本文主要介绍如何利用R语言进行数值型缺失值的填补。主要使用zoo包中的na.aggregate()na.approx()na.locf() 函数进行缺失值的均值填补
线性插值填补
以及邻近值填补

1、数据准备

install.packages("zoo")
library(zoo)
set.seed(1234)
my_NA <- data.frame(
  year = c(1991:2020),
  value = sample(c(NA, 100, 110, 120), 30, replace = TRUE))
my_NA
#   year value
#1  1991   120
#2  1992   120
#3  1993   100
#4  1994   100
#5  1995    NA
#6  1996   120
#7  1997   110
#8  1998    NA
#9  1999    NA
#10 2000   100
#...
#...
#26 2016   120
#27 2017    NA
#28 2018   120
#29 2019   120
#30 2020   120

2、插值方法

2.1 均值法

na.aggregate(my_NA$value#均值法
# [1] 120.0000 120.0000 100.0000 100.0000 110.3846 120.0000 110.0000 110.3846 110.3846 100.0000 120.0000 120.0000 100.0000 110.0000
#[15] 100.0000 100.0000 100.0000 110.0000 100.0000 120.0000 100.0000 100.0000 120.0000 100.0000 120.0000 120.0000 110.3846 120.0000
#[29] 120.0000 120.0000

2.2 线性插值法

na.approx(my_NA$value#插值法
# [1] 120.0000 120.0000 100.0000 100.0000 110.0000 120.0000 110.0000 106.6667 103.3333 100.0000 120.0000 120.0000 100.0000 110.0000
#[15] 100.0000 100.0000 100.0000 110.0000 100.0000 120.0000 100.0000 100.0000 120.0000 100.0000 120.0000 120.0000 120.0000 120.0000
#[29] 120.0000 120.0000

2.3 邻近法,与前一个值邻近

na.locf(my_NA$value#邻近法
# [1] 120 120 100 100 100 120 110 110 110 100 120 120 100 110 100 100 100 110 100 120 100 100 120 100 120 120 120 120 120 120

2.4 邻近法,与后一个值邻近

na.locf(my_NA$value, fromLast = TRUE) #邻近法
# [1] 120 120 100 100 120 120 110 100 100 100 120 120 100 110 100 100 100 110 100 120 100 100 120 100 120 120 120 120 120 120

3、其他

关于缺失值的查看与处理等问题可进一步阅读R数据分析|缺失值的查找、探索、删除与替换


如有帮助请多多点赞哦!


文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论