2016-05-11 17 views
0

Ich möchte mehrere Faktorspalten (Lebensmittel und Gruppen) gleichzeitig sortieren/sortieren. Ich möchte alle nonCRISPR an der Spitze, und in der Nahrungsmittelspalte würde ich reguläres gefolgt von Nikotin innerhalb des nonCRISPR Ereignisses mögen. Das ist mein Code unten. Wenn ich über f1 bestelle, bekomme ich das Ergebnis unten, wenn ich f bestelle, bekomme ich alles regelmäßig gefolgt von Nikotin. Wie kann ich beides bekommen?So bestellen/sortieren Sie mehrere Faktor-Spalten im Datensatz

 GenoSDs1<- aggregate(Viability ~ Line+Food+Group, x, sd); 
     f=factor(GenoSDs1$Food) 
     f1<-factor(GenoSDs1$Group) 
     levels(f) = rev(levels(f)) 
     levels(f1) = rev(levels(f1)) 
     GenoSDs1[order(GenoSDs1$Food, as.character(f1), decreasing = TRUE), ] 
     GenoSDs1 

     Line  Food  Group 
     33 11m3m Nicotine NonCRISPR 
     34 13f2m Nicotine NonCRISPR 
     35 13f5f Nicotine NonCRISPR 
     36 13m5f Nicotine NonCRISPR   
     37 1f1f Nicotine NonCRISPR 
     38 2f4f Nicotine NonCRISPR 
     39 3m5f Nicotine NonCRISPR 
     40 7f4m Nicotine NonCRISPR 
     41 11m3m Regular NonCRISPR 
     42 13f2m Regular NonCRISPR 
     43 13f5f Regular NonCRISPR 
     44 13m5f Regular NonCRISPR   
     45 1f1f Regular NonCRISPR 
     46 2f4f Regular NonCRISPR 
     47 3m5f Regular NonCRISPR 
     1 13f3f Nicotine CRISPR 
     2 13m2m Nicotine CRISPR 
     3 13m3f Nicotine CRISPR 
     4 13m4m Nicotine CRISPR 
     6 13f3f Regular CRISPR 
     7 13m2m Regular CRISPR 

Das ist, was ich will.

Line Food Group 
    41 11m3m Regular NonCRISPR 
    42 13f2m Regular NonCRISPR 
    43 13f5f Regular NonCRISPR 
    44 13m5f Regular NonCRISPR 
    45 1f1f Regular NonCRISPR 
    46 2f4f Regular NonCRISPR 
    47 3m5f Regular NonCRISPR 
    48 7f4m Regular NonCRISPR 
    33 11m3m Nicotine NonCRISPR 
    34 13f2m Nicotine NonCRISPR 
    35 13f5f Nicotine NonCRISPR 
    36 13m5f Nicotine NonCRISPR 
    37 1f1f Nicotine NonCRISPR 
    38 2f4f Nicotine NonCRISPR 
    39 3m5f Nicotine NonCRISPR 
    40 7f4m Nicotine NonCRISPR 
    6 13f3f Regular CRISPR 
    7 13m2m Regular CRISPR 
    1 13f3f Nicotine CRISPR 
    2 13m2m Nicotine CRISPR 
    3 13m3f Nicotine CRISPR 
    4 13m4m Nicotine CRISPR 

Antwort

0

Was:

GenoSDs1[with(GenoSDs1,order(-Group,-Food)),] 
+0

Das Problem sind die Spalten Faktoren sind – Genetics

+0

sie Faktoren sein müssen, tun? GenoSDs1 [, 2] = as.character (GenoSDs1 [, 2]) – chrisamiller

0
tbl <- read.table(text = " 
Line  Food  Group 
33 11m3m Nicotine NonCRISPR 
34 13f2m Nicotine NonCRISPR 
35 13f5f Nicotine NonCRISPR 
36 13m5f Nicotine NonCRISPR   
37 1f1f Nicotine NonCRISPR 
38 2f4f Nicotine NonCRISPR 
39 3m5f Nicotine NonCRISPR 
40 7f4m Nicotine NonCRISPR 
41 11m3m Regular NonCRISPR 
42 13f2m Regular NonCRISPR 
43 13f5f Regular NonCRISPR 
44 13m5f Regular NonCRISPR   
45 1f1f Regular NonCRISPR 
46 2f4f Regular NonCRISPR 
47 3m5f Regular NonCRISPR 
1 13f3f Nicotine CRISPR 
2 13m2m Nicotine CRISPR 
3 13m3f Nicotine CRISPR 
4 13m4m Nicotine CRISPR 
6 13f3f Regular CRISPR 
7 13m2m Regular CRISPR 
") 
tbl$Food <- factor(trimws(tbl$Food), levels = c("Regular", "Nicotine"), ordered=TRUE) 
tbl$Group <- factor(trimws(tbl$Group), levels = c("NonCRISPR", "CRISPR"), ordered=TRUE) 

require(dplyr) 
tbl %>% arrange (Group, Food, Line) 

Line  Food  Group 
1 11m3m Regular NonCRISPR 
2 13f2m Regular NonCRISPR 
3 13f5f Regular NonCRISPR 
4 13m5f Regular NonCRISPR 
5 1f1f Regular NonCRISPR 
6 2f4f Regular NonCRISPR 
7 3m5f Regular NonCRISPR 
8 11m3m Nicotine NonCRISPR 
9 13f2m Nicotine NonCRISPR 
10 13f5f Nicotine NonCRISPR 
11 13m5f Nicotine NonCRISPR 
12 1f1f Nicotine NonCRISPR 
13 2f4f Nicotine NonCRISPR 
14 3m5f Nicotine NonCRISPR 
15 7f4m Nicotine NonCRISPR 
16 13f3f Regular CRISPR 
17 13m2m Regular CRISPR 
18 13f3f Nicotine CRISPR 
19 13m2m Nicotine CRISPR 
20 13m3f Nicotine CRISPR 
21 13m4m Nicotine CRISPR 

In Basis R

tbl[order(tbl$Group, tbl$Food, tbl$Line),] 
+0

Dies hat immer noch Nikotin oben und NonCRISPR ist nicht alles zusammen. Bitte sehen Sie erneut die Frage und die erwartete Ausgabe. Danke für den Versuch aber – Genetics

+0

Auch ich möchte dies im Basispaket wenn möglich – Genetics

Verwandte Themen