如何用最后4个值替换R中数据帧中的任何NA

问题描述 投票:0回答:1

我在 R 中有一个数据框,其结构如下。我想通过结转最近的非缺失值来填充缺失值,但我想回顾 4 行并使用该值来填补空白。我可能不清楚这个问题,但你可以看看下面的结果示例。

   maker  num
1  local_1  1
2  local_2  2
3  local_3  5
4  local_4  6
5  local_1  NA
6  local_2  NA
7  local_3  NA
8  local_4  NA
9  local_1  4
10 local_2  7
11 local_3  8
12 local_4  9
13 local_1  NA
14 local_2  NA
15 local_3  NA
16 local_4  NA

转换为:

   maker  num
1  local_1  1
2  local_2  2
3  local_3  5
4  local_4  6
5  local_1  1
6  local_2  2
7  local_3  5
8  local_4  6
9  local_1  4
10 local_2  7
11 local_3  8
12 local_4  9
13 local_1  4
14 local_2  7
15 local_3  8
16 local_4  9

NA 的数量总是能被 4 整除,但没有连续 NA 数量的模式。

r dataframe tidyr na
1个回答
0
投票
library(dplyr) 
df |>
  mutate(num = coalesce(num, lag(num, 4)))
© www.soinside.com 2019 - 2024. All rights reserved.