阡陌寂夏 发表于 2013-1-11 21:26 
感觉排出的是a,b未排列,order()也看不懂,高手指点下
ab <- data.frame(a=c(1,3,2,1,4),b=c(2,1,4,3,1))
ab
> ab
a b
1 1 2
2 3 1
3 2 4
4 1 3
5 4 1
#order()是把原来的ab下标,按照a/b 的值 由大到小(-ab$b), 或由小到大重新排序, order(。。)返回的值是下标
ab[order(ab$a),]
a b
1 1 2
4 1 3
3 2 4
2 3 1
5 4 1
ab[order(ab$a,ab$b),] # 和ab[order(ab$a),]相同,默认ab$b按照由小到大
> ab[order(ab$a,ab$b),]
a b
1 1 2
4 1 3
3 2 4
2 3 1
5 4 1
ab[order(ab$a,-ab$b),] #a有小到大排序后, 如a中有相同的值,b 由大到小排
> ab[order(ab$a,-ab$b),]
a b
4 1 3
1 1 2
3 2 4
2 3 1
5 4 1
ab[order(ab$b,ab$a),] #先b排列, 后b的基础上a在进行排列
> ab[order(ab$b,ab$a),]
a b
2 3 1
5 4 1
1 1 2
4 1 3
3 2 4
就了解这么多,希望有帮助。呵呵