11
votes

Comment trier un cadre de données dans R

Je suis nouveau à r, et voulez trier une image de données appelée "poids". Voici les détails:

> weights[order(-weights$attr_importance),]


2 commentaires

@Jeff Atwood: Non pas que cela compte maintenant, mais les questions ne sont pas duplicats du tout. Ma question ressemble plus à "Comment trier tout en préservant les noms de ligne" pendant que celui que vous faites référence est "Comment trier par plusieurs colonnes".


OK, rouvert alors - excuses


3 Réponses :


12
votes

Étant donné que votre data.frame a seulement une colonne, vous devez définir goutte = false code> pour empêcher les dimensions d'être supprimées:

weights[order(-weights$attr_importance),,drop=FALSE]
#         attr_importance
# our         0.125433292
# all         0.098185517
# address     0.090686474
# over        0.075182467
# make        0.049630556
# num3d       0.007122618


1 commentaires

tu m'as sauvé! Il est intéressant d'intéresser que la fonction de tri () ne conserve pas les noms de la ligne !!!



10
votes

Voici la grande comparaison sur les données. Trifraillage de caractères:

Comment trier un fichier de données par colonne (s)? p>

Utilisation de ma solution maintenant préférée Arrangez code>: P>

dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"), 
      levels = c("Low", "Med", "Hi"), ordered = TRUE),
      x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
      z = c(1, 1, 1, 2))
library(plyr)
arrange(dd,desc(z),b)
    b x y z
1 Low C 9 2
2 Med D 3 1
3  Hi A 8 1
4  Hi A 9 1


0 commentaires

1
votes

RankData.txt

regno   name           total    maths   science social cat
1   SUKUMARAN   400 78  89  73  S
2   SHYAMALA    432 65  79  87  S
3   MANOJ       500 90  129 78  C
4   MILYPAULOSE 383 59  88  65  G
5   ANSAL       278 39  77  60  O
6   HAZEENA     273 45  55  56  O
7   MANJUSHA    374 50  99  52  C
8   BILBU       408 81  97  72  S
9   JOSEPHROBIN 374 57  85  68  G
10  SHINY       381 70  79  70  S
z <- data.frame(rankdata)

z[with(z, order(-total+ maths)),]  #order function  maths group selection
z
z[with(z, order(name)),]  # sort on name
z


0 commentaires