如何通过向量对具有重复项的数据框进行排序?

时间:2017-12-01 15:48:40

标签: r dataframe

我有一个包含两列(包含重复项)的数据框,我想通过向量排序。这是一个MWE:

target_order <- c("a", "b", "c")
df <- data.frame(col1 = c("c", "a", "b", "a", "a", "c", "c", "b"),
                 col2 = c(1, 1, 2, 5, 4, 2, 6, 7))

我的目标是根据dftarget_order订购col1。在Order data frame rows according to vector with specific order之后,我尝试了df[match(target_order, df$col1), ],但这只会导致:

> df[match(ind_order, df$col1), ]
  col1 col2
2    a    1
3    b    2
1    c    1

谁可以提供帮助? (基础R的解决方案很酷。)

1 个答案:

答案 0 :(得分:3)

您没有给出最终所需的输出,但可能是这样的

df[order(match(df$col1, target_order)),]
  col1 col2
2    a    1
4    a    5
5    a    4
3    b    2
8    b    7
1    c    1
6    c    2
7    c    6