如果是一个向量排序,直接用sort就行。

但如果要对一个数据狂,如有5个向量的,先根据V1排序,然后再根据V2排,

关键同时其他的向量数据也要跟着变换前后顺序,这个在R里怎么弄?

在excel里就很简单。

数据狂,试试这个?

<br />
a=data.frame(a1=c(2,1,3,4,2,5,4),a2=c(7,4,5,6,5,6,4),a3=c(1,2,3,4,5,6,7))<br />
a<br />
  a1 a2 a3<br />
1  2  7  1<br />
2  1  4  2<br />
3  3  5  3<br />
4  4  6  4<br />
5  2  5  5<br />
6  5  6  6<br />
7  4  4  7</p>
<p>a[order(a$a1,a$a2),]<br />
  a1 a2 a3<br />
2  1  4  2<br />
5  2  5  5<br />
1  2  7  1<br />
3  3  5  3<br />
7  4  4  7<br />
4  4  6  4<br />
6  5  6  6<br />
</p>

回复 第2楼 的 波波头一头:非常感谢,真是千变万化。

回复 第2楼 的 波波头一头:很有意思谢谢你哈[s:13]

其实还有数据狂会 V1升序,V2降序?

貌似仅order不行!

回复 第5楼 的 bioshaw:

这样吗?

<br />
a=data.frame(a1=c(2,1,3,4,2,5,4),a2=c(7,4,5,6,5,6,4),a3=c(1,2,3,4,5,6,7))<br />
a<br />
  a1 a2 a3<br />
1  2  7  1<br />
2  1  4  2<br />
3  3  5  3<br />
4  4  6  4<br />
5  2  5  5<br />
6  5  6  6<br />
7  4  4  7</p>
<p>a[order(a$a1,-a$a2),]<br />
  a1 a2 a3<br />
2  1  4  2<br />
1  2  7  1<br />
5  2  5  5<br />
3  3  5  3<br />
4  4  6  4<br />
7  4  4  7<br />
6  5  6  6<br />
</p>

哈哈,原来order也行,

我还一直用plyr包当中的arrange()

11 天 后

有种偷师学艺的快感。。[s:11][s:13][s:11][s:13][s:14]

the R book关于data.frame那一章有详细介绍

这个。用SAS的proc sort

BY 变量1 变量2

或者用proc sql

order by 变量1 变量2

不过R也的确神奇。。。感觉一个问题用R可以有几十种方法。

回复 第16楼 的 huangziwei:是的,仿你一个:

<br />
library(sqldf)<br />
sqldf("select * from a order by a1, a2 desc")<br />
</p>
9 天 后

巧妙,学习了[s:11]

2 年 后