I have a tibble with NA and "1" values, and I need to add in a "1" for all values in a row that are between two "1" values less than 4 columns apart (i.e. 3 or fewer columns apart). For example, take this example tibble:
# Example Tibble
ex_input <- tibble( "A" = c(1, NA, NA, NA),
"B" = c(NA, NA, 1, 1),
"C" = c(1, 1, NA, NA),
"D" = c(1, NA, NA, NA),
"E" = c(1, NA, NA, NA),
"F" = c(1, NA, NA, NA),
"G" = c(1, 1, NA, NA),
"H" = c(1, NA, NA, 1),
"I" = c(1, NA, NA, NA),
"J" = c(1, NA, 1, 1))
Which looks like:
> print(ex_input)
# A tibble: 4 x 10
A B C D E F G H I J
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 NA 1 1 1 1 1 1 1 1
2 NA NA 1 NA NA NA 1 NA NA NA
3 NA 1 NA NA NA NA NA NA NA 1
4 NA 1 NA NA NA NA NA 1 NA 1
What I need at the end is for an output in which a "1" is added - in this example - to B1, D2, C2, E2, and I2 because those are all in a row between two "1" values less than 4 columns apart. Like so:
> print(output)
# A tibble: 4 x 10
A B C D E F G H I J
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 1 1 1 1 1 1 1 1 1
2 NA NA 1 1 1 1 1 NA NA NA
3 NA 1 NA NA NA NA NA NA NA 1
4 NA 1 NA NA NA NA NA 1 1 1
Thank you in advance for your help!