楼主: yebofang
12496 19

[求助]R中排序问题 [推广有奖]

11
小鱼鱼88号 发表于 2014-3-26 16:44:59
danica33 发表于 2014-3-24 10:28
我排的都是按大小排列,是不是你的数字本身是字符,程序是什么样的
我在排序之前已经把数字的类型转化为nmeric了的啊。。。那两条程序是:a <- as.numeric(a[,c(1,3,4)]),这里说明一下,我的数据有四列,第二列不是数字,所以就没有把第二列转换。然后下一行:a <-  a[order(a[,3]),] 。然后运行出来就是前面说的结果了。。。请解答,谢谢。

12
danica33 发表于 2014-3-26 18:02:53
小鱼鱼88号 发表于 2014-3-26 16:44
我在排序之前已经把数字的类型转化为nmeric了的啊。。。那两条程序是:a
你这个a<-as.numeric(a[,c(1,3,4)]),a就变成数值向量了,不是矩阵,我先把矩阵转换成数据框
a<-matrix(NA,ncol=4,nrow=5)
a[,1]<-sample(1:100,5,replace=F)
a[,3]<-sample(1:100,5,replace=F)
a[,4]<-sample(1:100,5,replace=F)
a[,2]<-c("M","F","F","M","M")
a<-as.data.frame(a)
a[,-2]<-apply(a[,-2],2,as.numeric)
a<-a[order(a[,3]),]
##原始a
> a
  V1 V2  V3 V4
1 73  M  63 57
2  5  F  18 53
3  4  F  26 37
4  8  M  68 23
5 92  M 100 51
>
#######
##按第三列排序后
> a
  V1 V2  V3 V4
2  5  F  18 53
3  4  F  26 37
1 73  M  63 57
4  8  M  68 23
5 92  M 100 51
>
###########

13
小鱼鱼88号 发表于 2014-3-28 23:52:29
懂了,非常感谢!!!

14
yangyifan1003 发表于 2014-4-25 15:48:09
heavenicefox 发表于 2008-3-19 21:21
x&lt;-matrix(c(8,3,9,5,7,3),byrow=F,nrow=3)x[order(x[,1]),]结果如下:&nbsp;&nbsp;&nbsp;&nbsp; [,1] [, ...
也解决了我的问题!谢谢!

15
醉竹游侠 发表于 2014-6-30 10:30:58
太牛了

16
complicated 在职认证  发表于 2014-6-30 11:46:58
heavenicefox 发表于 2008-3-19 21:36
解释一下吧,其实思路很简单,无论是向量还是矩阵数据框,R都可以很容易的通过下标来操作order(x[,1])得到x ...
感谢,再问个中级的问题,
有什么办法能比较容易的按照多列排序,类似excel里面自定义排序的功能?
谢谢~

17
jmpamao 发表于 2014-6-30 16:50:26
complicated 发表于 2014-6-30 11:46
感谢,再问个中级的问题,
有什么办法能比较容易的按照多列排序,类似excel里面自定义排序的功能?
谢谢 ...
是指data=data.frame(x,y,z)
      data[order(x,y,-z),] 类似这样的?

18
complicated 在职认证  发表于 2014-6-30 17:35:56
jmpamao 发表于 2014-6-30 16:50
是指data=data.frame(x,y,z)
      data[order(x,y,-z),] 类似这样的?
对呀,就是这类的,谢谢哈,我试试!

19
小磊子100 发表于 2015-1-25 15:55:25
非常好的答案,解决了我的问题

20
魏伟(Veyoun) 发表于 2015-12-18 15:28:04
你好,问一下如何按照一个矩阵的对角线对矩阵进行重新排序,并保证行列名称跟着一块变动,谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-19 07:26