楼主: Sunny602678
4427 7

[问答] R语言中关于缺失值填补的问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

29%

还不是VIP/贵宾

-

威望
0
论坛币
33 个
通用积分
7.6874
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
495 点
帖子
57
精华
0
在线时间
116 小时
注册时间
2016-6-27
最后登录
2020-11-8

10论坛币
目前是这样的数据: 1.png

想判断RDstaffR列最后一个数据是否是缺失值,若是缺失值,则继续向上判断,若不是缺失值,则用后值填充RDstaffRl列的所有数据。写的是这样的语句(待修改)。 2.png
一直判断到第1个数据,直至将RDstaffR列的7个数据填充完毕。

这是其中的一组数据,我打算用for循环来完成每一组的判断与填补(共3207组)。每组缺失的数据个数不一样(只看RDstaffR这一列),有的组是数据部分缺失,还有的组这7个数据全部缺失。数据全缺失的组直接剔除,其他组或用前值填充,或用后值填充,以实现将RDstaffR这一列数据补齐的目的。

感觉这么做太繁琐了,想请教便捷合理的填补方式,求大神不吝赐教~

沙发
skyfx 发表于 2020-4-3 14:33:30 |只看作者 |坛友微信交流群
  1. # 实际上就是用最后一个非na来填充整列嘛~easy money~

  2. library(dplyr)

  3. out <- input %>%
  4.   group_by(stock) %>%
  5.   mutate(new.col = last(na.omit(RDstaffR)))
复制代码

使用道具

藤椅
Sunny602678 在职认证  学生认证  发表于 2020-4-3 14:48:52 |只看作者 |坛友微信交流群
skyfx 发表于 2020-4-3 14:33
不是啊,还有的组是这样的情况:第1至4个数据为NA,第5个和第6个数据有值,且值不相同,则用第5个数据填充第1-4个数据,用第6个数据填充第7个数据,该怎么改进呢?

使用道具

板凳
skyfx 发表于 2020-4-3 15:00:32 |只看作者 |坛友微信交流群
有什么一口气说完,不带挤牙膏的吧~

使用道具

报纸
Sunny602678 在职认证  学生认证  发表于 2020-4-3 16:01:04 |只看作者 |坛友微信交流群
skyfx 发表于 2020-4-3 15:00
有什么一口气说完,不带挤牙膏的吧~
说了啊,“这是其中一组数据,有的数据部分缺失,有的数据全部缺失”,“缺失数据用前值或后值填充”。总不能把所有情况都列出来吧,怕问题太长没人愿意看。。

使用道具

地板
Sunny602678 在职认证  学生认证  发表于 2020-4-3 16:07:03 |只看作者 |坛友微信交流群
7个数据中第1个缺失,最后1个缺失,12缺失,135缺失,247缺失,12347缺失等等都有可能

使用道具

7
不懂不装懂 发表于 2020-4-3 17:08:43 |只看作者 |坛友微信交流群
library(tidyr)
t<-data.frame(x=1:8,y=c(rep(NA, 4),9,10,rep(NA, 2)))

t%>%fill(y,.direction = "updown")

使用道具

8
Shane777 发表于 2021-11-24 10:54:22 |只看作者 |坛友微信交流群
不懂不装懂 发表于 2020-4-3 17:08
library(tidyr)
t%fill(y,.direction = "updown")
谢谢!!!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 20:57