Создание столбца восходящих целых чисел во фрейме данных 2 для кодирования порядка. Затем объедините этот столбец с фреймом данных 1 и выполните сортировку по нему.
library(dplyr)
df1 <- tibble(
id = c(1, 2, 3),
col1 = c('a', 'b', 'c')
)
df2 <- tibble(
id = c(3, 1, 2),
col2 = c('c', 'a', 'b')
)
df2$ordering <- sequence(nrow(df2))
df1_ordered <- df1 %>%
left_join(df2, by = 'id') %>%
arrange(ordering)