首页 > 解决方案 > 将列中的 NA 值更改为前面的值,直到出现其他二进制数

问题描述

我有一个看起来像这样的数据:

SN  TimeStamp      MOTOR
1   1/27/20 18:00   0
2   1/27/20 18:01   NA
3   1/27/20 18:02   1
4   1/27/20 18:03   NA
5   1/27/20 18:04   0
6   1/27/20 18:05   1
7   1/27/20 18:06   NA
8   1/27/20 18:07   NA
9   1/27/20 18:08   0

基本上,我的问题是如何将 NA 值更改为其主值?我的意思是对于第 2 行的 NA,答案将与之前的第 1 行相同,即 0。对于第 7 行和第 8 行的 NA,答案将是第 6 行的答案,即 1。对于第 4 行的 NA,值将替换为第 3 行中的数字,即 1。

可以这样编程吗?

如果有人能提供帮助,我将不胜感激。

谢谢。

标签: r

解决方案


你可以试试

while(any(is.na(df$MOTOR))
{
  na_entries <- which(is.na(df$MOTOR))
  df$MOTOR[na_entries] <- df$MOTOR[na_entries - 1]
}

推荐阅读