Dataframe 基于两列向前携带多个列的非Na值

Dataframe 基于两列向前携带多个列的非Na值,dataframe,Dataframe,我正在寻找以下解决方案 我希望将非NA值向前传递,但仅限于行C或A中的列名内以及多个列 有人知道如何解决这个问题吗?:) 谢谢:)您可以使用dplyr和tidyr中的fill功能。您需要分组,以确保只填充来自正确键的值 fill使用上一个条目填充缺少的值,因此确保数据的顺序符合您想要的顺序 library(dplyr) library(tidyr) df %>% group_by(Key) %>% fill(Value) Key Date Value

我正在寻找以下解决方案

我希望将非NA值向前传递,但仅限于行C或A中的列名内以及多个列

有人知道如何解决这个问题吗?:)


谢谢:)

您可以使用
dplyr
tidyr
中的
fill
功能。您需要分组,以确保只填充来自正确键的值

fill
使用上一个条目填充缺少的值,因此确保数据的顺序符合您想要的顺序

library(dplyr)
library(tidyr)

df %>% 
  group_by(Key) %>% 
  fill(Value)

  Key   Date    Value  col4  col5
  <chr> <chr>   <int> <int> <int>
1 A     2001-06    NA    NA    NA
2 A     2001-07     2     2    NA
3 A     2002-08     2     1     1
4 C     2000-03     1    NA    NA
5 C     2000-05     1     1    NA
6 C     2000-07     2     2    NA
库(dplyr)
图书馆(tidyr)
df%>%
分组依据(键)%>%
填充(值)
键日期值col4 col5
2001-06年度不适用
2 A 2001-07 2 2 NA
3 A 2002-08 2 1 1
4 C 2000-03 1不适用
5 C 2000-05 1不适用
6 C 2000-07 2不适用

@Peter,您可以一次填写多个列。只需将它们添加到fill语句中。日期必须按顺序排列(或分组),否则您可能会用后一个月的值填充一个月。