2010-04-27 38 views
1

我想解決stats::reorder vs Hmisc::reorder的奇怪重疊。stats :: reorder vs Hmisc :: reorder

沒有Hmisc加載我得到我想要的結果,即無序因素:

> with(InsectSprays, reorder(spray, count, median)) 
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C C C C C C C C C C C D D 
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F F F F F F F F F 
attr(,"scores") 
    A B C D E F 
14.0 16.5 1.5 5.0 3.0 15.0 
Levels: C E D A F B 

現在正在加載Hmisc結果是一個有序的因素後:

> library(Hmisc) 
Loading required package: survival 
Loading required package: splines 

Attaching package: 'Hmisc' 

The following object(s) are masked from 'package:survival': 

    untangle.specials 

The following object(s) are masked from 'package:base': 

    format.pval, round.POSIXt, trunc.POSIXt, units 

> with(InsectSprays, reorder(spray, count, median)) 
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C C C C C C C C C C C D D 
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F F F F F F F F F 
Levels: C < E < D < A < F < B 

在直接調用stats::reorder,我現在由於某種原因得到一個有序的因素。

> with(InsectSprays, stats::reorder(spray, count, median)) 
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C C C C C C C C C C C D D 
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F F F F F F F F F 
Levels: C < E < D < A < F < B 

指定,我需要一個錯誤提示stats::reorder無序因素的結果,不使用?

> with(InsectSprays, stats::reorder(spray, count, median, order = FALSE)) 
Error in FUN(X[[1L]], ...) : unused argument(s) (order = FALSE) 

所以,真正的問題是如何獲取與Hmisc加載一個無序的因素?

回答

4

您可以通過

with(InsectSprays, stats:::reorder.default(spray, count, median)) 

注意到統計::訂貨做的是 '調度員',以便在你的榜樣

with(InsectSprays, stats::reorder(spray, count, median)) 

終於Hmisc :: reorder.factor被稱爲統計的,而不是:: reorder.default。

+0

或簡單分離(「包:Hmisc」)可以卸載加載的包。 – kohske 2010-04-27 07:44:27