# generate data
df <- data.frame(
  QuestionId = c(rep(NA, 16)),
  AltQuestionId = c(1, 2, 4, 5, 6, NA, 8, 10, NA, NA, 14, NA, 16, NA, 18, 20),
  AltTakerId = c(7, 13, 10, 15, 17, NA, 8, 11, NA, NA, 25, NA, 29, NA, 35, 29)
)
df$QuestionId[c(6, 9, 10, 12, 14)] <- c(1, 6, 2, 6, 4)
df$TakerId <- NA # a column of NAs
I have no idea how to fill the TakerID column as explained in the Figure above.
The variables QuestionID and AltQuestionID are the same. 
Also the variables TakerID and AltTakerID are the same. 
The purpose is to associate QuestionID with TakerID.
Output wanted:
> df
   QuestionId AltQuestionId AltTakerId TakerId
1          NA             1          7      NA
2          NA             2         13      NA
3          NA             4         10      NA
4          NA             5         15      NA
5          NA             6         17      NA
6           1            NA         NA       7
7          NA             8          8      NA
8          NA            10         11      NA
9           6            NA         NA      17
10          2            NA         NA      13
11         NA            14         25      NA
12          6            NA         NA      17
13         NA            16         29      NA
14          4            NA         NA      10
15         NA            18         35      NA
16         NA            20         29      NA

 
     
     
    