用dplyr替换df开头和结尾的NA

时间:2015-09-15 18:21:14

标签: r dplyr na

在列中输入缺失值的最佳包是什么?我查看了处理时间序列数据的zoo包,并使用LOCF(na.locf)进行了播放,但跳过了NA ...

这是一个示例数据框

> df <- within(df, {duration[c(1,5,9)] <- NA})
> df
  duration
1       NA
2        2
3        3
4        4
5       NA
6        6
7        7
8        8
9       NA

1 个答案:

答案 0 :(得分:3)

您可以向na.locf说明您不想删除NA,以便保留替换中的第一个NA。然后你可以做另一个替换,说你想从上一个开始用剩余的NA替换第一个非NA元素。

df <-read.table(text = "duration
       NA
        2
        3
        4
       NA
        6
        7
        8
       NA", header = TRUE)

library(zoo)
df <- na.locf(df, na.rm = FALSE)
df <- na.locf(df, na.rm = FALSE, fromLast = TRUE)
df
  duration
1        2
2        2
3        3
4        4
5        4
6        6
7        7
8        8
9        8