Ответ: Да, вы можете сделать это без контрольных операторов.
Вы можете попробовать следующий код
r <- c("string_1","string_2","string_3")[c(x==y,x<y,x>y)]
или
r <- subset(c("string_1","string_2","string_3"), c(x==y,x<y,x>y))
или
r <- c("string_1","string_2","string_3")[crossprod(diag(+c(x==y,x<y,x>y)), 1:3)]