假设我具有以下数据框:
v <- data.frame(a=c(12,45,23), b=c(34,23,11))
我还有一个列向量,我想按以下顺序排序:
s <- c("a", "b")
如何使用v
对s
进行排序?
注意:从本质上讲,这就是我想要开始的工作,但是 不起作用:
v[order(s),]
所以我期望以下几点:
a b
12 34
23 11
45 23
答案 0 :(得分:4)
如果使用dplyr
:
arrange_at(v,s)
答案 1 :(得分:3)
用s
vector
子集数据集,如果有多列,则在order
中传递函数do.call
以对数据集的行进行排序
v[do.call(order, v[s]),]