'Ifelse function based on multiple conditions

I am trying to create a new column (TRUE/FALSE) based on the values of three other columns (also TRUE/FALSE). This is a small sample.

DF
ID     1      2      3
1      TRUE   NA     NA
2      FALSE  TRUE   NA
3      TRUE   TRUE   NA
4      TRUE   FALSE  NA
5      TRUE   FALSE  TRUE
6      FALSE  FALSE  TRUE
7      TRUE   FALSE  FALSE
8      FALSE  NA     NA
9      NA     NA     NA

Not all three columns have the same amount of rows. (therefor a lot of NA values). The data were files that were checked and in column 2 some of them were re-checked and in column 3 an even smaller portion was again re-checked.

So Column 2 overrides column 1, and column 3 overrides column 1 and 2.

I would like the following output

ID     1      2      3           4
1      TRUE   NA     NA          TRUE
2      FALSE  TRUE   NA          TRUE
3      TRUE   TRUE   NA          TRUE
4      TRUE   FALSE  NA          FALSE
5      TRUE   FALSE  TRUE        TRUE
6      FALSE  FALSE  TRUE        TRUE
7      TRUE   FALSE  FALSE       FALSE
8      FALSE  NA     NA          FALSE
9      NA     NA     NA          FALSE 

Classes are character so ive tried it with the function ifelse and grepl

DF$4 = ifelse(
        grepl("TRUE", DF$1) |
                grepl("TRUE", DF$2 |
                grepl("TRUE", DF$3), "TRUE","FALSE"  ))

But this only allows me to give certain conditions for the option TRUE. I dont know how to implement if column 2 shows FALSE en column 1 shows TRUE to get the output FALSE.

I've tried to search stackoverflow for a similar question/answer, (there probably is) but i couldnt find it therefor i would like to ask it here. Thank you in advance.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source