按配对行排序data.frame的集合?

时间:2016-07-28 09:10:45

标签: r sorting dataframe

我有三个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

如何获得所需的输出格式?非常感谢

1 个答案:

答案 0 :(得分:2)

我们可以将orderdo.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