嗨,我有df,因为下面的值列有NA值,如何用最后7天替换NA值之前的值。如果在最后7天内找不到非NA值,则在该天的最后7天内,无法替换(如: 10-01-2016 )的值。
Name value new_col
01-01-2016 NA *NA*
02-01-2016 43
03-01-2016 NA *43*
04-01-2016 NA *43*
05-01-2016 NA *43*
06-01-2016 NA *43*
07-01-2016 NA *43*
08-01-2016 NA *43*
09-01-2016 NA *43*
10-01-2016 NA *NA*
11-01-2016 12
12-01-2016 33
13-01-2016 NA *33*
14-01-2016 NA *33*我们可以使用动物园库填充NA之前的值。
<- transform(df,value = na.locf(value))
df$new_col = ifelse(is.na(df$value) & (df$Name-7),na.locf( df$value),df$value)
发布于 2017-07-04 08:54:58
您可以在na.locf包中使用参数maxgap。
(请注意,我们假设您的数据是按日期排列的,而没有遗漏意甲中的漏洞)
library(zoo)
df$new_col <- na.locf(df$value, maxgap = 7, na.rm = FALSE)https://stackoverflow.com/questions/44901159
复制相似问题