Упорядочить строки данных в соответствии с вектором с определенным порядком

Существует ли более простой способ гарантировать, что строки фрейма данных упорядочены согласно «цели»? вектор как тот, который я реализовал в коротком примере ниже?

df <- data.frame(name = letters[1:4], value = c(rep(TRUE, 2), rep(FALSE, 2)))

df
#   name value
# 1    a  TRUE
# 2    b  TRUE
# 3    c FALSE
# 4    d FALSE

target <- c("b", "c", "a", "d")

Это как-то кажется слишком «сложным» чтобы сделать работу:

idx <- sapply(target, function(x) {
    which(df$name == x)
})
df <- df[idx,]
rownames(df) <- NULL

df 
#   name value
# 1    b  TRUE
# 2    c FALSE
# 3    a  TRUE
# 4    d FALSE

Ответы на вопрос(3)

Ваш ответ на вопрос