0

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
zhiwei li
  • 1,635
  • 8
  • 26

0 Answers0