小鱼鱼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
>
###########