Вы можете использовать dplyr
и функцию fill
из tidyr
. Вам нужно сгруппировать, чтобы убедиться, что вы заполняете только значения из правильного ключа.
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