我有一个包含两列(包含重复项)的数据框,我想通过向量排序。这是一个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))
我的目标是根据df
按target_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的解决方案很酷。)
答案 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