我在排序stat0
列中的后面的数据帧(sds45)时遇到了特殊问题;R多列数据的排序
>sds45
icntr iexpt angle overlap Specified.Shot.Width V6 mcsp stat0
DD.Sigma2 3 1R50_50 45 0 50 rectangular 1.5 3.62075986666667
DD.Sigma5 6 1R50_35 45 15 50 rectangular 1.5 1.07005992333333
DD.Sigma8 9 1R50_40 45 10 50 rectangular 1.5 1.36916201
DD.Sigma11 12 1R50_30 45 20 50 rectangular 1.5 0.951408239333333
DD.Sigma14 15 1R100_75 45 25 100 rectangular 1.5 11.6972803333333
DD.Sigma17 18 1R100_80 45 20 100 rectangular 1.5 13.4350596666667
DD.Sigma20 21 1R100_90 45 10 100 rectangular 1.5 16.654366
DD.Sigma31 32 1R100_150 45 50 100 rectangular 1.5 2.19166406666667
DD.Sigma34 35 1R100_160 45 40 100 rectangular 1.5 5.4822418
DD.Sigma39 40 1C200_25 45 75 100 circular 1.5 0.704197414
DD.Sigma42 43 1C200_50 45 50 100 circular 1.5 1.03405964333333
DD.Sigma45 46 1C200_75 45 25 100 circular 1.5 7.03481966666667
DD.Sigma48 49 1C200_80 45 20 100 circular 1.5 9.19375816666667
我的第一种方法是这样的:
test<-sds45[order(sds45$stat0),]
...这什么也没做。
我也试过这样:
test=orderBy(~stat0, data=sds45)
我必须有一个基本的概念问题。我希望对此有一点教育。
是stat0列的数字?有趣的事情发生时,你排序字符向量!如果您订购数字,您首次尝试使用“订单”应该很好。 – Justin 2012-01-30 14:58:12
我敢打赌,你的一些列是因素而不是字符/数字。在这种情况下,他们将按照他们的基本代码进行排序,而不是他们的级别使用'str(sds45)'来检查。 – 2012-01-30 15:00:59
您的第一种方法适用于我。 'stat0'是数字列吗? 'str(sds45 $ stat0)'给了你什么? – 2012-01-30 15:01:56