gpt4 book ai didi

r - 仅当 "sandwiched"使用 dplyr 填充相同的值时才填充 NA

转载 作者:行者123 更新时间:2023-12-04 22:39:42 26 4
gpt4 key购买 nike

好的,这是另一个缺失值填充问题。

我正在寻找一种方法来根据列中的上一个和下一个现有值填充 NA。单一方向的标准填充不足以完成此任务。

如果列中的前一个和下一个有效值不同,则块保留为 NA。

enter image description here

示例数据框的代码是:

df_in <- tibble(id= 1:12,
var1 = letters[1:12],
var2 = c(NA,rep("A",2),rep(NA,2),rep("A",2),rep(NA,2),rep("B",2),NA))

谢谢,

最佳答案

比较 na.locf() (最后一次观察结转)和 na.locf(fromLast = TRUE) (落后):

mutate(df_in, 
var_new = if_else(
zoo::na.locf(var2, na.rm = FALSE) ==
zoo::na.locf(var2, na.rm = FALSE, fromLast = TRUE),
zoo::na.locf(var2, na.rm = FALSE),
NA_character_
))

# # A tibble: 12 x 4
# id var1 var2 var_new
# <int> <chr> <chr> <chr>
# 1 1 a NA NA
# 2 2 b A A
# 3 3 c A A
# 4 4 d NA A
# 5 5 e NA A
# 6 6 f A A
# 7 7 g A A
# 8 8 h NA NA
# 9 9 i NA NA
# 10 10 j B B
# 11 11 k B B
# 12 12 l NA NA

关于r - 仅当 "sandwiched"使用 dplyr 填充相同的值时才填充 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51704128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com