What you need to do is to create ordered factors from the data in the order
that you want them sorted:


> x <- '"CM"  "BARBY"  "INCREASED" "  0" "  2" "  0" "  1" "  1"
+  "CM"  "BARBY"  "REDUCED"   "  0" "  1" "  2" "  2" "  5"
+  "CM"  "BARBY"  "STANDARD"  " 93" " 51" " 56" " 41" " 77"
+  "CM"  "BONBON" "INCREASED" " 43" " 30" " 39" " 32" " 58"
+  "CM"  "BONBON" "REDUCED"   "  4" "  3" "  6" "  4" " 10"
+  "CM"  "BONBON" "STANDARD"  "200" "141" "127" " 73" "134"
+  "RAR" "BARBY"  "INCREASED" "  4" "  1" "  3" "  1" "  5"
+  "RAR" "BARBY"  "REDUCED"   "  5" "  7" "  8" "  9" " 16"
+  "RAR" "BARBY"  "STANDARD"  "571" "286" "314" "270" "467"
+  "RAR" "BONBON" "INCREASED" " 49" " 92" "108" "154" "240"
+  "RAR" "BONBON" "REDUCED"   " 11" "  9" "  5" "  6" " 18"
+  "RAR" "BONBON" "STANDARD"  "978" "627" "571" "324" "541"
+ '
> x.in <- read.table(textConnection(x))  # read in the data frame
> x.in$V1 <- factor(x.in$V1, levels=c("CM", "RAR"))  # create ordered
factors
> x.in$V2 <- factor(x.in$V2, levels=c("BONBON", "BARBY"))
> x.in$V3 <- factor(x.in$V3, levels=c("REDUCED", "STANDARD", "INCREASED"))
> # sort by all three columns
> x.in[order(x.in$V1, x.in$V2, x.in$V3),]
    V1     V2        V3  V4  V5  V6  V7  V8
5   CM BONBON   REDUCED   4   3   6   4  10
6   CM BONBON  STANDARD 200 141 127  73 134
4   CM BONBON INCREASED  43  30  39  32  58
2   CM  BARBY   REDUCED   0   1   2   2   5
3   CM  BARBY  STANDARD  93  51  56  41  77
1   CM  BARBY INCREASED   0   2   0   1   1
11 RAR BONBON   REDUCED  11   9   5   6  18
12 RAR BONBON  STANDARD 978 627 571 324 541
10 RAR BONBON INCREASED  49  92 108 154 240
8  RAR  BARBY   REDUCED   5   7   8   9  16
9  RAR  BARBY  STANDARD 571 286 314 270 467
7  RAR  BARBY INCREASED   4   1   3   1   5




On 3/19/07, Niels Steen Krogh <nielssteenkrogh@zitelab.dk> wrote:
>
> I try to sort this dataframe:
>     [,1]  [,2]     [,3]        [,4]  [,5]  [,6]  [,7]  [,8]
> [1,] "CM"  "BARBY"  "INCREASED" "  0" "  2" "  0" "  1" "  1"
> [2,] "CM"  "BARBY"  "REDUCED"   "  0" "  1" "  2" "  2" "  5"
> [3,] "CM"  "BARBY"  "STANDARD"  " 93" " 51" " 56" " 41" " 77"
> [4,] "CM"  "BONBON" "INCREASED" " 43" " 30" " 39" " 32" " 58"
> [5,] "CM"  "BONBON" "REDUCED"   "  4" "  3" "  6" "  4" " 10"
> [6,] "CM"  "BONBON" "STANDARD"  "200" "141" "127" " 73" "134"
> [7,] "RAR" "BARBY"  "INCREASED" "  4" "  1" "  3" "  1" "  5"
> [8,] "RAR" "BARBY"  "REDUCED"   "  5" "  7" "  8" "  9" " 16"
> [9,] "RAR" "BARBY"  "STANDARD"  "571" "286" "314" "270" "467"
> [10,] "RAR" "BONBON" "INCREASED" " 49" " 92" "108" "154" "240"
> [11,] "RAR" "BONBON" "REDUCED"   " 11" "  9" "  5" "  6" " 18"
> [12,] "RAR" "BONBON" "STANDARD"  "978" "627" "571" "324" "541"
>
>
> I want the sorting criteria:
> Column 1: CM before RAR
> Column 2: BONBON before BARBY
> Column 3: REDUCED before STANDARD before INCREASED
>
> Have played with the "order" function but without being able to "sort out"
> how
> to sort using information in column three.
>
> /Niels
>
> Niels Steen Krogh
> Konsulent
> ZiteLab ApS
>
> Mail: ---------- nielssteenkrogh@zitelab.dk
> Telefon: ------- +45 38 88 86 13
> Mobil: --------- +45 22 67 37 38
> Adresse: ------- ZiteLab ApS
> ---------------- Solsortvej 44
> ---------------- 2000 F.
> Web: ----------- www.zitelab.dk
>
> ZiteLab
> -Let's Empower Your Data with Webservices
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

	[[alternative HTML version deleted]]

