2010-04-27 12 views
1

J'essaie de contourner l'étrange chevauchement de stats::reorder vs Hmisc::reorder.stats :: reorder vs Hmisc :: reorder

Sans Hmisc chargé j'obtenir le résultat que je veux, à savoir un facteur non ordonné:

> 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 

Maintenant, après le chargement Hmisc le résultat est un facteur commandé:

> 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 

En appelant directement stats::reorder, je maintenant, pour une raison quelconque, obtenez un facteur ordonné.

> 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 

Spécification, que je besoin d'un facteur résulte désordonnées une erreur suggérant que stats::reorder n'est pas utilisé?

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

La question est vraiment comment puis-je obtenir un facteur avec Hmisc chargé non ordonnée?

Répondre

4

vous pouvez le faire par

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

noter que stats :: réordonnancement est un 'régulateur' donc dans votre exemple

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

enfin Hmisc :: reorder.factor est appelé au lieu de stats :: reorder.default.

+0

ou simplement détacher ("package: Hmisc") peut décharger le package chargé. – kohske

Questions connexes