Чтобы просто вывести "C"
и "D"
на фронт:
myvec <- c("B","C","D","A")
myvec[order(!myvec %in% c('C', 'D'))]
#[1] "C" "D" "B" "A"
Чтобы сделать полный заказ:
myvec <- c("B","C","D","A")
order.vec <- c('C', 'D', 'B', 'A')
myvec[order(match(myvec, order.vec))]
# [1] "C" "D" "B" "A"
Пример с другим входным вектором:
myvec <- sample(myvec, 20, T)
myvec[order(match(myvec, order.vec))]
# [1] "C" "C" "C" "C" "C" "C" "D" "D" "D" "D" "D" "D" "B" "B" "B" "A" "A" "A" "A" "A"