Une autre façon de résoudre ce problème consiste à créer une variante factorielle et à mettre l'ordre de ces membres de facteur, puis cela sera très utile comme vous pourriez vous y attendre comme ci-dessous.
> table = data.frame(Time=c(1,2), In=c(2,3), Out=c(3,4), Files=c(4,5))
> table
Time In Out Files
1 1 2 3 4
2 2 3 4 5
> cn = factor(c('Time', 'In', 'Out', 'Files'), levels=c(c('Time', 'Out', 'In', 'Files')), ordered=T)
> table[cn]
Time Out In Files
1 1 3 2 4
2 2 4 3 5
Pour surprendre, cela fonctionne également comme ci-dessous, veuillez noter le changement des lignes dans ko.d.m après la fonction d'agrégation. Pourquoi cela semble intéressant? Cela aide à mettre le contrôle, le groupe important dans les premières colonnes surtout lorsqu'il est présenté avec un graphique.
> ko.d
bcd452 livece452 grcd452 maccd452 tcd452
6 0.1970 0.911 0.000 0.2940 2.34
7 0.0437 1.410 0.000 0.0801 4.72
8 0.1450 4.530 0.000 0.3160 9.86
9 0.1920 3.690 0.495 0.5130 5.43
10 0.2060 4.080 0.000 0.1610 5.87
11 0.0000 3.180 0.000 0.0911 6.85
12 0.1200 4.430 0.000 1.1900 7.51
> gt = c('ko', 'ko', 'wt', 'wt', 'wt', 'wt', 'wt')
> ko.d.m = aggregate(ko.d, by=list(gt=gt), mean)
> ko.d.m
gt bcd452 livece452 grcd452 maccd452 tcd452
1 ko 0.12035 1.1605 0.000 0.18705 3.530
2 wt 0.13260 3.9820 0.099 0.45422 7.104
>
> gt = factor(c('ko', 'ko', 'wt', 'wt', 'wt', 'wt', 'wt'), levels=c('wt', 'ko'), ordered=T)
> ko.d.m = aggregate(ko.d, by=list(gt=gt), mean)
> ko.d.m
gt bcd452 livece452 grcd452 maccd452 tcd452
1 wt 0.13260 3.9820 0.099 0.45422 7.104
2 ko 0.12035 1.1605 0.000 0.18705 3.530
Je viens de réaliser que cela pourrait être hors de la question d'origine. C'est plus comme réorganiser les lignes après le calcul. Quoi qu'il en soit, je le laisserai ici car il est lié à la réorganisation.
4 votes
help(Extract)
aussi connu sous le nom de?'['
3 votes
En plus de la suggestion de @Joris, essayez de lire les sections 2.7 et 5 du manuel "An Introduction to R" : cran.r-project.org/doc/manuals/R-intro.html
5 votes
Un problème supplémentaire : toutes les réponses nécessitent la liste complète des colonnes, sinon cela aboutit à un sous-ensemble. Et si nous voulons seulement énumérer quelques colonnes à classer en premier, mais aussi conserver toutes les autres ?