2017-07-27 1 views
0

J'essaie de commander des données avec la colonne weightFisher. Cependant, c'est presque comme si R ne traitait pas les valeurs e comme faibles, car toutes les valeurs e sont ignorées lorsque j'essaie de passer du plus petit au plus grand.R ne commande pas correctement les données - ignore les valeurs E

code:

resultTable_bon <- GenTable(GOdata_bon, 
          weightFisher = resultFisher_bon, 
          weightKS = resultKS_bon, 
          topNodes = 15136, 
          ranksOf = 'weightFisher' 
) 
head(resultTable_bon) 

#create Fisher ordered df 
indF <- order(resultTable_bon$weightFisher) 
resultTable_bonF <- resultTable_bon[indF, ] 

ce resultTable_bon ressemble à:

 GO.ID        Term Annotated Significant Expected Rank in weightFisher 
1 GO:0019373   epoxygenase P450 pathway  19   13  1.12     1 
2 GO:0097267 omega-hydroxylase P450 pathway   9   7  0.53     2 
3 GO:0042738 exogenous drug catabolic process  10   7  0.59     3 
    weightFisher weightKS 
1  1.9e-12 0.79744 
2  7.9e-08 0.96752 
3  2.5e-07 0.96336 

ce que "ordonné" resultTable_bonF ressemble:

 GO.ID          Term Annotated Significant Expected Rank in weightFisher 
17 GO:0014075       response to amine  33   7  1.95     17 
18 GO:0034372 very-low-density lipoprotein particle re...  11   5  0.65     18 
19 GO:0060710      chorio-allantoic fusion   6   4  0.35     19 
    weightFisher weightKS 
17  0.00014 0.96387 
18  0.00016 0.83624 
19  0.00016 0.92286 
+3

Pouvez-vous fournir un [exemple reproductible?] (Https://stackoverflow.com/questions/5963269/how-to-make- a-great-r-reproducible-example) Il sera beaucoup plus facile pour les autres de répondre à votre question s'ils peuvent reproduire votre problème. – Florian

+1

lisez l'aide pour 'order' avec'? Order'. Et utilisez l'argument de l'ordre 'décroissant'. R fait exactement ce que vous lui avez demandé de faire. – Bhas

+0

Je veux que ça augmente. Par valeur e, je veux dire valeur e négative. Regardez comment la première table a des valeurs weightFisher très faibles, mais quand j'essaye de la commander, dans le tableau suivant, les termes les plus bas ne sont pas là en premier. – merryberry

Répondre

0

Effectuez les actions suivantes:

resultTable_bon$weightFisher <- as.numeric (resultTable_bon$weightFisher) 

Puis:

resultTable_bonF <- resultTable_bon[order(resultTable_bonF$weightFisher),] 
1

Comme dit @bhas, il semble fonctionner exactement comme vous le souhaitez. Peut-être que c'est l'utilisation de head() qui vous déroute?

Pour mettre votre esprit à l'aise, essayer quelque chose de plus simple

dtf <- data.frame(a=c(1, 8, 6, 2)^-10, b=c(7, 2, 1, 6)) 

dtf 
      # a b 
# 1 1.000000e+00 7 
# 2 9.313226e-10 2 
# 3 1.653817e-08 1 
# 4 9.765625e-04 6 

dtf[order(dtf$a), ] 
      # a b 
# 2 9.313226e-10 2 
# 3 1.653817e-08 1 
# 4 9.765625e-04 6 
# 1 1.000000e+00 7