如何按列名向量排序数据框?

时间:2019-09-10 17:47:48

标签: r dataframe

假设我具有以下数据框:

v <- data.frame(a=c(12,45,23), b=c(34,23,11))

我还有一个列向量,我想按以下顺序排序:

s <- c("a", "b")

如何使用vs进行排序?

  

注意:从本质上讲,这就是我想要开始的工作,但是   不起作用:

v[order(s),]

所以我期望以下几点:

a  b
12 34
23 11
45 23

2 个答案:

答案 0 :(得分:4)

如果使用dplyr

arrange_at(v,s)

答案 1 :(得分:3)

s vector子集数据集,如果有多列,则在order中传递函数do.call以对数据集的行进行排序

v[do.call(order, v[s]),]