我有一个像这样的数据框:
# A tibble: 14 x 1
inventory
<int>
1 3
2 4
3 NA
4 5
5 NA
6 NA
7 NA
8 NA
9 10
10 14
11 NA
12 NA
13 NA
14 16
我想用最后一个可用值替换NA值。
对于第3行,我可以执行以下操作:
df %>%
mutate(
inventory2 = ifelse(
!is.na(inventory),
inventory,
lag(inventory)
)
)
但是对于第5到8行,我想保留新创建的向量inventory2
的最后一个值。换句话说,就是引用自己。
我尝试了以下操作,但不起作用
df %>%
mutate(
inventory2 = ifelse(
!is.na(inventory),
inventory,
lag(inventory2) # reference to itself doesn't work
)
)
for循环也非常慢。
最终输出应为:
# A tibble: 14 x 1
inventory inventory2
<int> <int>
1 3 3
2 4 4
3 NA 4
4 5 5
5 NA 5
6 NA 5
7 NA 5
8 NA 5
9 10 10
10 14 14
11 NA 14
12 NA 14
13 NA 14
14 16 16
可以这样做吗?
感谢您的帮助