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

3

假设我有以下数据框:

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

我还有一个列向量需要按照以下顺序排序:

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

我该如何使用 sv 进行排序?

注意:本来我想让以下代码工作,但实际上它并不能正常运行:

v[order(s),]

所以我期望以下情况:

a  b
12 34
23 11
45 23
2个回答

4

如果使用 dplyr

arrange_at(v,s)

3

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

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

1
应该知道:当有疑问时 - 使用do.call()函数。 - Denis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接