I think I am very close to the solution. But unfortunately I don't get it.
x1kb <- c(1:10, NA, NA, 5,6,7,8)
y1 <- rep(c(NA,777),each=8)
x2kb <- c(1:10, NA, NA, 5,6,7,8)
y2 <- rep(c(NA,777),each=8)
data1<- data.frame(x1kb, y1, x2kb, y2)
This is how the dataframe looks like:
   x1kb  y1 x2kb  y2
1     1  NA    1  NA
2     2  NA    2  NA
3     3  NA    3  NA
4     4  NA    4  NA
5     5  NA    5  NA
6     6  NA    6  NA
7     7  NA    7  NA
8     8  NA    8  NA
9     9 777    9 777
10   10 777   10 777
11   NA 777   NA 777
12   NA 777   NA 777
13    5 777    5 777
14    6 777    6 777
15    7 777    7 777
16    8 777    8 777
I tried it with dplyr. But I always get an error.
library(dplyr)
#replace NA with 0 if colname includes "kb"
data1[is.na(data1)] <- 0 %>% select(data1, contains("kb"))
My desired output:
   x1kb  y1 x2kb  y2
1     1  NA    1  NA
2     2  NA    2  NA
3     3  NA    3  NA
4     4  NA    4  NA
5     5  NA    5  NA
6     6  NA    6  NA
7     7  NA    7  NA
8     8  NA    8  NA
9     9 777    9 777
10   10 777   10 777
11    0 777    0 777
12    0 777    0 777
13    5 777    5 777
14    6 777    6 777
15    7 777    7 777
16    8 777    8 777
 
     
    