Context
I have a datafram df
like this.
df = data.frame(
id = c('a', '', '', '', 'b', NA, NA, NA),
value = 1:8)
# > df
# id value
# 1 a 1
# 2 2
# 3 3
# 4 4
# 5 b 5
# 6 <NA> 6
# 7 <NA> 7
# 8 <NA> 8
I want to repeat value in id
to fill the blank which includes ''
and NA
.
The expected output would like this:
df_wanted = data.frame(
id = c('a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'),
value = 1:8)
# > df_wanted
# id value
# 1 a 1
# 2 a 2
# 3 a 3
# 4 a 4
# 5 b 5
# 6 b 6
# 7 b 7
# 8 b 8
Question
How can I get the expected output (df_wanted
) from df
.
Reproducible code
df = data.frame(
id = c('a', '', '', '', 'b', NA, NA, NA),
value = 1:8)
# > df
# id value
# 1 a 1
# 2 2
# 3 3
# 4 4
# 5 b 5
# 6 <NA> 6
# 7 <NA> 7
# 8 <NA> 8
df_wanted = data.frame(
id = c('a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'),
value = 1:8)
# > df_wanted
# id value
# 1 a 1
# 2 a 2
# 3 a 3
# 4 a 4
# 5 b 5
# 6 b 6
# 7 b 7
# 8 b 8