我有三个data.frame对象,我将它们组合在一起并删除重复的实例,但似乎顺序不够好,我想按自然顺序对它们进行排序。如何才能更有效地实现这一目标?
foo <- data.frame( start=seq(1, by=4, len=6), stop=seq(3, by=4, len=6))
bar <- data.frame(start=seq(5, by=2, len=7), stop=seq(7, by=2, len=7))
bleh <- data.frame(start=seq(1, by=5, len=5), stop=seq(3, by=5, len=5))
我把它们组合如下:
out <- rbind.data.frame(foo, bar, bleh)
out <- out[!duplicated(out),]
但是没有正确的顺序,我想按行按正确的顺序排序。
start stop
1 1 3
2 5 7
3 6 8
4 7 9
5 9 11
6 11 13
7 13 15
8 15 17
9 16 18
10 17 19
11 21 23
如何获得所需的输出格式?非常感谢
答案 0 :(得分:2)
我们可以将order
与do.call
out1 <- out[do.call(order, out),]
out1
# start stop
#1 1 3
#2 5 7
#15 6 8
#8 7 9
#3 9 11
#10 11 13
#4 13 15
#12 15 17
#17 16 18
#5 17 19
#6 21 23
rownames(out1) <- NULL