如果是一个向量排序,直接用sort就行。
但如果要对一个数据狂,如有5个向量的,先根据V1排序,然后再根据V2排,
关键同时其他的向量数据也要跟着变换前后顺序,这个在R里怎么弄?
在excel里就很简单。
R中的排序?
数据狂,试试这个?
<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:14]
鸡冻啊……学习了。呵呵[s:11][s:11][s: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]
doBy中orderBy很好用
2 年 后
回复 第17楼 的 yanlinlin82:赞一个