1

我有一些数据:

dd <- data.frame(cbind(c("A", "A", "B"), c("F", "E", "D"), c(1, 2, 3)))
names(dd) <- c("colA", "colB", "colC")

我有一个查找框架 lk

lk <- data.frame(rbind(c("colA", "colC"), c("colB", "colC")))
names(lk) <- c("srt_col", "srt_metric")

而我想要做的是按查找框架中命名的列对数据进行排序。

就像是:

dd[ order(lk[, 1]), ]

这应该给出的输出

output data (roughly, you get the idea I hope)
A  E  2
A  F  1
B  D  3

但我似乎无法获得正确的语法,而且我觉得我在这里遗漏了一些明显的东西。有人可以在这里帮忙吗?

4

1 回答 1

6

这是一个尝试。

dd[do.call(order, dd[as.character(lk[, 1])]), ]

as.character是为了避免任何可能的factor恶作剧。

于 2013-06-26T04:42:44.767 回答