我有一个看起来像这样的字符向量
c("white","white","blue","green","red","blue","red")
而且还有一种特定的顺序,就像
c("red","white","blue","green")
我想按照第二个向量的顺序对第一个向量进行排序,以获得以下向量:c("red","red","white","white","blue","blue", "green")
。什么是最好的解决方案?
我有一个看起来像这样的字符向量
c("white","white","blue","green","red","blue","red")
而且还有一种特定的顺序,就像
c("red","white","blue","green")
我想按照第二个向量的顺序对第一个向量进行排序,以获得以下向量:c("red","red","white","white","blue","blue", "green")
。什么是最好的解决方案?
x <- c("white","white","blue","green","red","blue","red")
y <- c("red","white","blue","green")
x[order(match(x, y))]
# [1] "red" "red" "white" "white" "blue" "blue" "green"
使用适当的顺序和sort()
将变量转换为因子:
x1 <- c("white","white","blue","green","red","blue","red")
ord <- c("red","white","blue","green")
f1 <- factor(x1,levels=ord)
sort(f1)
## [1] red red white white blue blue green
## Levels: red white blue green
你可以使用 x2 <- as.character(sort(f1))
如果你真的想要以字符向量的形式得到结果...