Instead of %in% , try testing with grepl().
try2 <- data.frame(X1 = c("a","Zkeyword1","b","C","D"),
X2 = c("keyword1W","A","B","C","D"),
X3 = c("A","B","C","D","Kkeyword1"),
X4 = c("A","B","C","keyword1D","D"),
X5 = c("A","B","keyword1S","C","D"))
try2
#> X1 X2 X3 X4 X5
#> 1 a keyword1W A A A
#> 2 Zkeyword1 A B B B
#> 3 b B C C keyword1S
#> 4 C C D keyword1D C
#> 5 D D Kkeyword1 D D
try2$keyword1 <-
ifelse(grepl("keyword1",try2$X1), try2$X1,
ifelse(grepl("keyword1",try2$X2), try2$X2,
ifelse(grepl("keyword1",try2$X3), try2$X3,
ifelse(grepl("keyword1",try2$X4), try2$X4,
ifelse(grepl("keyword1",try2$X5), try2$X5,NA
) ) ) ) )
try2
#> X1 X2 X3 X4 X5 keyword1
#> 1 a keyword1W A A A keyword1W
#> 2 Zkeyword1 A B B B Zkeyword1
#> 3 b B C C keyword1S keyword1S
#> 4 C C D keyword1D C keyword1D
#> 5 D D Kkeyword1 D D Kkeyword1
Created on 2022-11-14 with reprex v2.0.2