我有一个字符串向量,我想根据特定的级别顺序对其进行排序。
这是我的等级顺序:
x <- c("green", "red", "orange", "blue", "yellow")
并且我想根据我的水平在x中的顺序对字符串向量y <- c("yellow", "orange")
进行排序。
所以y
应该返回c("orange", "yellow")
。
谢谢。任何帮助表示赞赏。
编辑:感谢您的回答。我还想出了x[x %in% y]
可能的解决方案
答案 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