根据指定顺序对字符串向量进行排序

时间:2018-10-27 00:10:52

标签: r sorting vector

我有一个字符串向量,我想根据特定的级别顺序对其进行排序。

这是我的等级顺序:

x <- c("green", "red", "orange", "blue", "yellow")

并且我想根据我的水平在x中的顺序对字符串向量y <- c("yellow", "orange")进行排序。

所以y应该返回c("orange", "yellow")

谢谢。任何帮助表示赞赏。

编辑:感谢您的回答。我还想出了x[x %in% y]可能的解决方案

1 个答案:

答案 0 :(得分:1)

您可以通过将y设为有序因子然后简单地进行排序来实现。

x <- c("green", "red", "orange", "blue", "yellow")

set.seed(1066)
y = factor(sample(x, 5, replace=T), levels=x, ordered=T)
y
[1] red   blue  blue  red   green
Levels: green < red < orange < blue < yellow
sort(y)
[1] green red   red   blue  blue 
Levels: green < red < orange < blue < yellow