I would to visualize in boxplot a data frame with two factors ordering one factor with the median. As example,suppose to have the InsectSprays dataframe, where an "operator" factor with two levels, op1 and op2, has been added as shown at bottom here. How may be generated a boxplot showing boxes for the interaction spray*op, ordered according to the operators' count median for every spray ? Thanks in advance for any help! Sergio ________________________________ Modified InsectSprays dataframe: count spray op 1 10 A op1 2 7 A op1 3 20 A op1 4 14 A op1 5 14 A op1 6 12 A op1 7 10 A op2 8 23 A op2 9 17 A op2 10 20 A op2 11 14 A op2 12 13 A op2 13 11 B op1 14 17 B op1 15 21 B op1 16 11 B op1 17 16 B op1 18 14 B op1 19 17 B op2 20 17 B op2 21 19 B op2 22 21 B op2 23 7 B op2 24 13 B op2 25 0 C op1 26 1 C op1 27 7 C op1 28 2 C op1 29 3 C op1 30 1 C op1 31 2 C op2 32 1 C op2 33 3 C op2 34 0 C op2 35 1 C op2 36 4 C op2 37 3 D op1 38 5 D op1 39 12 D op1 40 6 D op1 41 4 D op1 42 3 D op1 43 5 D op2 44 5 D op2 45 5 D op2 46 5 D op2 47 2 D op2 48 4 D op2 49 3 E op1 50 5 E op1 51 3 E op1 52 5 E op1 53 3 E op1 54 6 E op1 55 1 E op2 56 1 E op2 57 3 E op2 58 2 E op2 59 6 E op2 60 4 E op2 61 11 F op1 62 9 F op1 63 15 F op1 64 22 F op1 65 15 F op1 66 16 F op1 67 13 F op2 68 10 F op2 69 26 F op2 70 26 F op2 71 24 F op2 72 13 F op2 [[alternative HTML version deleted]]
> On Sep 5, 2015, at 7:29 AM, Sergio Fonda <sergio.fonda99 at gmail.com> wrote: > > I would to visualize in boxplot a data frame with two factors ordering one > factor with the median. > As example,suppose to have the InsectSprays dataframe, where an "operator" > factor with two levels, op1 and op2, has been added as shown at bottom here. > How may be generated a boxplot showing boxes for the interaction spray*op, > ordered according to the operators' count median for every spray ? > Thanks in advance for any help! > Sergio > ________________________________ > Modified InsectSprays dataframe:<snip> Hi, There is actually an example of reordering factor levels by a calculated numeric value using the InsectSprays data frame in ?boxplot using ?reorder. An interaction can be created by using ?interaction. Given your data above, in a data frame ?DF?: DF <- structure(list(count = c(10L, 7L, 20L, 14L, 14L, 12L, 10L, 23L, 17L, 20L, 14L, 13L, 11L, 17L, 21L, 11L, 16L, 14L, 17L, 17L, 19L, 21L, 7L, 13L, 0L, 1L, 7L, 2L, 3L, 1L, 2L, 1L, 3L, 0L, 1L, 4L, 3L, 5L, 12L, 6L, 4L, 3L, 5L, 5L, 5L, 5L, 2L, 4L, 3L, 5L, 3L, 5L, 3L, 6L, 1L, 1L, 3L, 2L, 6L, 4L, 11L, 9L, 15L, 22L, 15L, 16L, 13L, 10L, 26L, 26L, 24L, 13L), spray = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("A", "B", "C", "D", "E", "F"), class = "factor"), op = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("op1", "op2"), class = "factor")), .Names = c("count", "spray", "op"), class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72")) # Modify the ?boxplot example bymedian <- with(DF, reorder(interaction(spray, op), count, median))> bymedian[1] A.op1 A.op1 A.op1 A.op1 A.op1 A.op1 A.op2 A.op2 A.op2 A.op2 A.op2 [12] A.op2 B.op1 B.op1 B.op1 B.op1 B.op1 B.op1 B.op2 B.op2 B.op2 B.op2 [23] B.op2 B.op2 C.op1 C.op1 C.op1 C.op1 C.op1 C.op1 C.op2 C.op2 C.op2 [34] C.op2 C.op2 C.op2 D.op1 D.op1 D.op1 D.op1 D.op1 D.op1 D.op2 D.op2 [45] D.op2 D.op2 D.op2 D.op2 E.op1 E.op1 E.op1 E.op1 E.op1 E.op1 E.op2 [56] E.op2 E.op2 E.op2 E.op2 E.op2 F.op1 F.op1 F.op1 F.op1 F.op1 F.op1 [67] F.op2 F.op2 F.op2 F.op2 F.op2 F.op2 attr(,"scores") A.op1 B.op1 C.op1 D.op1 E.op1 F.op1 A.op2 B.op2 C.op2 D.op2 E.op2 F.op2 13.0 15.0 1.5 4.5 4.0 15.0 15.5 17.0 1.5 5.0 2.5 18.5 12 Levels: C.op1 C.op2 E.op2 E.op1 D.op1 D.op2 A.op1 B.op1 ... F.op2 boxplot(count ~ bymedian, data = DF, xlab = "Interaction of spray and op", ylab = "Insect count", main = "Modified InsectSprays Data", varwidth = TRUE, col = "lightgray") Regards, Marc Schwartz
Great! Thank you All the best SF Il 05/set/2015 15:08, "Marc Schwartz" <marc_schwartz at me.com> ha scritto:> > > On Sep 5, 2015, at 7:29 AM, Sergio Fonda <sergio.fonda99 at gmail.com> > wrote: > > > > I would to visualize in boxplot a data frame with two factors ordering > one > > factor with the median. > > As example,suppose to have the InsectSprays dataframe, where an > "operator" > > factor with two levels, op1 and op2, has been added as shown at bottom > here. > > How may be generated a boxplot showing boxes for the interaction > spray*op, > > ordered according to the operators' count median for every spray ? > > Thanks in advance for any help! > > Sergio > > ________________________________ > > Modified InsectSprays dataframe: > > <snip> > > Hi, > > There is actually an example of reordering factor levels by a calculated > numeric value using the InsectSprays data frame in ?boxplot using ?reorder. > An interaction can be created by using ?interaction. > > Given your data above, in a data frame ?DF?: > > DF <- structure(list(count = c(10L, 7L, 20L, 14L, 14L, 12L, 10L, 23L, > 17L, 20L, 14L, 13L, 11L, 17L, 21L, 11L, 16L, 14L, 17L, 17L, 19L, > 21L, 7L, 13L, 0L, 1L, 7L, 2L, 3L, 1L, 2L, 1L, 3L, 0L, 1L, 4L, > 3L, 5L, 12L, 6L, 4L, 3L, 5L, 5L, 5L, 5L, 2L, 4L, 3L, 5L, 3L, > 5L, 3L, 6L, 1L, 1L, 3L, 2L, 6L, 4L, 11L, 9L, 15L, 22L, 15L, 16L, > 13L, 10L, 26L, 26L, 24L, 13L), spray = structure(c(1L, 1L, 1L, > 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, > 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, > 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, > 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, > 6L, 6L, 6L, 6L, 6L), .Label = c("A", "B", "C", "D", "E", "F"), class > "factor"), > op = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, > 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, > 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, > 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, > 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, > 2L, 2L), .Label = c("op1", "op2"), class = "factor")), .Names > c("count", > "spray", "op"), class = "data.frame", row.names = c("1", "2", > "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", > "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", > "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", > "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", > "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", > "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", > "70", "71", "72")) > > > # Modify the ?boxplot example > bymedian <- with(DF, reorder(interaction(spray, op), count, median)) > > > bymedian > [1] A.op1 A.op1 A.op1 A.op1 A.op1 A.op1 A.op2 A.op2 A.op2 A.op2 A.op2 > [12] A.op2 B.op1 B.op1 B.op1 B.op1 B.op1 B.op1 B.op2 B.op2 B.op2 B.op2 > [23] B.op2 B.op2 C.op1 C.op1 C.op1 C.op1 C.op1 C.op1 C.op2 C.op2 C.op2 > [34] C.op2 C.op2 C.op2 D.op1 D.op1 D.op1 D.op1 D.op1 D.op1 D.op2 D.op2 > [45] D.op2 D.op2 D.op2 D.op2 E.op1 E.op1 E.op1 E.op1 E.op1 E.op1 E.op2 > [56] E.op2 E.op2 E.op2 E.op2 E.op2 F.op1 F.op1 F.op1 F.op1 F.op1 F.op1 > [67] F.op2 F.op2 F.op2 F.op2 F.op2 F.op2 > attr(,"scores") > A.op1 B.op1 C.op1 D.op1 E.op1 F.op1 A.op2 B.op2 C.op2 D.op2 E.op2 F.op2 > 13.0 15.0 1.5 4.5 4.0 15.0 15.5 17.0 1.5 5.0 2.5 18.5 > 12 Levels: C.op1 C.op2 E.op2 E.op1 D.op1 D.op2 A.op1 B.op1 ... F.op2 > > > boxplot(count ~ bymedian, data = DF, > xlab = "Interaction of spray and op", ylab = "Insect count", > main = "Modified InsectSprays Data", varwidth = TRUE, > col = "lightgray") > > > Regards, > > Marc Schwartz > >[[alternative HTML version deleted]]
Thanks to Marc Schwartz I was able to order a "two factors"
interaction boxplot with median associated to one factor alone.
I tried further to generate facets plot (3x2 boxplots in ggplot2) for the
dataframe reported at bottom and I'm not able to reach a correct plot.
The dataframe is a simulation of genes expressions in five conditions of
patiens.
I would like that each of the 5 boxplots were ordered with median of values
associated to the combination "gene*pat.cond".
Any help is much appreciated,
Sergio
____________________________
Example Dataframe:
pat.cond gene value
1 N ADAMTS1 -5.557194292
2 N ADAMTS1 -2.576700157
3 E ADAMTS1 -6.629356620
4 E ADAMTS1 -6.629356620
5 E ADAMTS1 -6.629356620
6 E ADAMTS1 -6.629356620
7 M ADAMTS1 -6.629356620
8 M ADAMTS1 -6.629356620
9 M ADAMTS1 -6.629356620
10 M ADAMTS1 -2.742163709
11 N ADAMTS12 -1.084104611
12 E ADAMTS12 1.710871953
13 E ADAMTS12 6.629356620
14 M ADAMTS12 6.629356620
15 M ADAMTS12 1.711422682
16 E APC -3.665169008
17 E APC -1.192183578
18 M APC -6.629356620
19 M APC 3.696542194
20 M APC -3.533991641
21 R APC -4.267887134
22 N BORIS 6.629356620
23 E BORIS 6.629356620
24 M BORIS 6.629356620
25 M BORIS 6.629356620
26 M BORIS 6.629356620
27 S BORIS 6.629356620
28 E BRCA1 -4.260347862
29 E BRCA1 -6.629356620
30 E BRCA1 -6.629356620
31 M BRCA1 -6.443174967
32 M BRCA1 -6.629356620
33 M BRCA1 -6.629356620
34 M BRCA1 -2.525972281
35 N P16 -1.698706675
36 M P16 -6.629356620
37 M P16 -6.629356620
38 M P16 -6.629356620
39 S P16 -6.629356620
40 S P16 -6.629356620
41 S P16 0.518269571
42 N DAX1 0.708010228
43 E DAX1 -0.337455350
44 E DAX1 2.803374605
45 E DAX1 -1.407226228
46 M DAX1 6.629356620
47 S DAX1 2.022408499
48 S DAX1 6.629356620
49 S DAX1 6.629356620
50 S DAX1 6.629356620
51 N DKK1 -0.876905559
52 N DKK1 0.008176565
53 E DKK1 -3.057081024
54 M DKK1 0.804046915
55 N DKK2 -4.677880676
56 N DKK2 -3.264182143
57 M DKK2 0.219772061
58 R DKK2 -3.205760419
59 R DKK2 -3.567799537
60 R DKK2 -1.687113091
61 S DKK2 -6.629356620
62 S DKK2 -6.629356620
63 N ESR1 1.479810020
64 M ESR1 1.861011014
65 N FBP1 -0.110196473
66 N FBP1 0.721286184
67 E FBP1 -5.107943868
68 E FBP1 -4.593812366
69 M FBP1 -1.622176688
70 S FBP1 -3.097791525
71 E FOXL2 -4.564123239
72 E FOXL2 3.111180437
73 M FOXL2 0.323703764
74 M FOXL2 -3.851350485
75 R FOXL2 -3.324087523
76 S FOXL2 0.739408989
77 M GATA5 -1.171932246
78 M GATA5 -3.466054731
79 M GATA5 -1.283038699
80 S GATA5 -2.778390690
81 S GATA5 -2.014479273
82 S GATA5 -3.015234172
83 E GPX3 -6.629356620
84 E GPX3 -1.942190735
85 M GPX3 6.629356620
86 M GPX3 -6.629356620
87 M GPX3 -2.615982450
88 M GPX3 -6.629356620
89 M GPX3 0.128743354
90 S GPX3 -6.629356620
91 E MAL -6.629356620
92 E MAL -4.825545452
93 E MAL -6.629356620
94 E MAL -6.629356620
95 E MAL -6.629356620
96 M MAL -0.419005364
97 M MAL -0.923667455
98 M MAL 6.629356620
99 M MAL 3.371740196
100 S MAL -6.629356620
101 N MGMT -6.629356620
102 E MGMT 1.115112556
103 M MGMT 4.030893797
104 S MGMT -6.629356620
105 N MLH1 -0.519875304
106 N MLH1 -1.352872084
107 E MLH1 -0.777864442
108 E MLH1 1.105073029
109 E MLH1 5.758699199
110 E MLH1 -1.498072236
111 S MLH1 -1.630362301
112 M MYOD1 -6.629356620
113 M MYOD1 6.629356620
114 M MYOD1 -6.629356620
115 M MYOD1 -6.629356620
116 R MYOD1 -6.629356620
117 R MYOD1 -6.629356620
118 S MYOD1 -6.629356620
119 S MYOD1 -6.629356620
120 S MYOD1 -4.645053781
121 N NELL1 -6.629356620
122 N NELL1 -5.536591557
123 N NELL1 -5.903856552
124 E NELL1 -6.629356620
125 E NELL1 -6.629356620
126 M NELL1 -6.629356620
127 S NELL1 -6.629356620
128 N OSMR -6.629356620
129 M OSMR 4.407821839
130 M OSMR 0.364604851
131 M OSMR -6.629356620
132 S OSMR -6.629356620
133 N PAX6 6.629356620
134 E PAX6 -3.401030959
135 M PAX6 -0.946878855
136 S PAX6 0.964721065
137 E PTGS2 -3.749795240
138 M PTGS2 -6.629356620
139 S PTGS2 -2.076356656
140 S PTGS2 -3.961164916
141 N RARB -4.611429173
142 E RARB -1.706166432
143 S RARB -3.697493231
144 N RASSF1A -1.505128642
145 E RASSF1A 0.808179628
146 E RASSF1A -6.629356620
147 E RASSF1A -0.694997778
148 M RASSF1A -0.332307577
149 S RASSF1A -6.629356620
150 S RASSF1A 6.629356620
151 N RPRM -4.023523466
152 E RPRM 0.443243995
153 S RPRM -6.629356620
154 S RPRM -4.019270038
155 E RSPOI -1.735307607
156 E RSPOI -1.296083205
157 M RSPOI -3.003752756
158 S RSPOI -3.156564936
159 S RSPOI -2.928871731
160 N SEPTIN9 -6.629356620
161 E SEPTIN9 -2.585469731
162 E SEPTIN9 -2.525798264
163 M SEPTIN9 6.629356620
164 R SEPTIN9 -3.071222253
165 S SEPTIN9 -6.629356620
166 M SFRP1 -1.426465815
167 R SFRP1 -6.629356620
168 S SFRP1 -2.348648751
169 S SFRP1 -6.629356620
170 S SFRP1 -2.304295273
171 N SFRP4 -2.315044901
172 E SFRP4 -2.940158139
173 M SFRP4 6.629356620
174 S SFRP4 -6.629356620
175 S SFRP4 6.629356620
176 N SFRP5 -6.629356620
177 E SFRP5 -5.833523393
178 E SFRP5 2.765666156
179 E SFRP5 2.707734922
180 E SFRP5 6.629356620
181 M SMAD4 -6.629356620
182 M SMAD4 -6.629356620
183 M SMAD4 -6.629356620
184 R SMAD4 -6.629356620
185 S SMAD4 -6.629356620
186 S SMAD4 -6.629356620
187 S SMAD4 -6.629356620
188 N SOCS3 -0.604614698
189 N SOCS3 0.097268646
190 E SOCS3 -1.505450218
191 E SOCS3 6.629356620
192 N SPARC -3.865639988
193 N SPARC -1.868782928
194 E SPARC 2.821046068
195 E SPARC 6.629356620
196 S SPARC -6.629356620
197 S SPARC 0.202017887
198 S SPARC 6.629356620
199 S SPARC 6.629356620
200 N TAC1 -1.528221578
201 M TAC1 6.629356620
202 M TAC1 6.629356620
203 R TAC1 -2.294267250
204 S TAC1 2.624594634
205 N TERT -2.985641232
206 E TERT 2.809747729
207 E TERT 6.629356620
208 E TERT -3.164404633
209 M TERT 6.629356620
210 M TERT -2.766881108
211 S TERT 0.875337372
212 S TERT 3.175095461
213 N TIMP3 -2.046729298
214 E TIMP3 -3.461408230
215 E TIMP3 -2.996720557
216 M TIMP3 -6.629356620
217 M TIMP3 -1.527333149
218 R TIMP3 -3.933657283
219 S TIMP3 -1.020144976
220 S TIMP3 -2.357112874
221 S TIMP3 0.806736362
222 M TMEFF2 -1.160275850
223 M TMEFF2 -2.712025806
224 R TMEFF2 -3.961478237
225 R TMEFF2 -6.510953714
226 S TMEFF2 -0.619555286
227 S TMEFF2 2.344341057
228 E WIF1 -6.629356620
229 E WIF1 -3.806114522
230 E WIF1 -2.318313158
231 M WIF1 1.102899897
232 M WIF1 6.629356620
233 M WIF1 -6.629356620
234 N WNT4 -6.629356620
235 E WNT4 -3.474027185
236 E WNT4 -6.629356620
237 S WNT4 -6.629356620
238 S WNT4 -6.629356620
239 E WRN -6.629356620
240 M WRN -4.148942985
241 S WRN -1.855994142
242 R WT1 -0.824982393
243 S WT1 1.236129501
244 S WT1 1.088540877
2015-09-05 15:08 GMT+02:00 Marc Schwartz <marc_schwartz at me.com>:
>
> > On Sep 5, 2015, at 7:29 AM, Sergio Fonda <sergio.fonda99 at
gmail.com>
> wrote:
> >
> > I would to visualize in boxplot a data frame with two factors ordering
> one
> > factor with the median.
> > As example,suppose to have the InsectSprays dataframe, where an
> "operator"
> > factor with two levels, op1 and op2, has been added as shown at bottom
> here.
> > How may be generated a boxplot showing boxes for the interaction
> spray*op,
> > ordered according to the operators' count median for every spray ?
> > Thanks in advance for any help!
> > Sergio
> > ________________________________
> > Modified InsectSprays dataframe:
>
> <snip>
>
> Hi,
>
> There is actually an example of reordering factor levels by a calculated
> numeric value using the InsectSprays data frame in ?boxplot using ?reorder.
> An interaction can be created by using ?interaction.
>
> Given your data above, in a data frame ?DF?:
>
> DF <- structure(list(count = c(10L, 7L, 20L, 14L, 14L, 12L, 10L, 23L,
> 17L, 20L, 14L, 13L, 11L, 17L, 21L, 11L, 16L, 14L, 17L, 17L, 19L,
> 21L, 7L, 13L, 0L, 1L, 7L, 2L, 3L, 1L, 2L, 1L, 3L, 0L, 1L, 4L,
> 3L, 5L, 12L, 6L, 4L, 3L, 5L, 5L, 5L, 5L, 2L, 4L, 3L, 5L, 3L,
> 5L, 3L, 6L, 1L, 1L, 3L, 2L, 6L, 4L, 11L, 9L, 15L, 22L, 15L, 16L,
> 13L, 10L, 26L, 26L, 24L, 13L), spray = structure(c(1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
> 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L,
> 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L,
> 6L, 6L, 6L, 6L, 6L), .Label = c("A", "B",
"C", "D", "E", "F"), class >
"factor"),
> op = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
> 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
> 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
> 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
> 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
> 2L, 2L), .Label = c("op1", "op2"), class =
"factor")), .Names > c("count",
> "spray", "op"), class = "data.frame",
row.names = c("1", "2",
> "3", "4", "5", "6", "7",
"8", "9", "10", "11", "12",
"13", "14",
> "15", "16", "17", "18",
"19", "20", "21", "22", "23",
"24", "25",
> "26", "27", "28", "29",
"30", "31", "32", "33", "34",
"35", "36",
> "37", "38", "39", "40",
"41", "42", "43", "44", "45",
"46", "47",
> "48", "49", "50", "51",
"52", "53", "54", "55", "56",
"57", "58",
> "59", "60", "61", "62",
"63", "64", "65", "66", "67",
"68", "69",
> "70", "71", "72"))
>
>
> # Modify the ?boxplot example
> bymedian <- with(DF, reorder(interaction(spray, op), count, median))
>
> > bymedian
> [1] A.op1 A.op1 A.op1 A.op1 A.op1 A.op1 A.op2 A.op2 A.op2 A.op2 A.op2
> [12] A.op2 B.op1 B.op1 B.op1 B.op1 B.op1 B.op1 B.op2 B.op2 B.op2 B.op2
> [23] B.op2 B.op2 C.op1 C.op1 C.op1 C.op1 C.op1 C.op1 C.op2 C.op2 C.op2
> [34] C.op2 C.op2 C.op2 D.op1 D.op1 D.op1 D.op1 D.op1 D.op1 D.op2 D.op2
> [45] D.op2 D.op2 D.op2 D.op2 E.op1 E.op1 E.op1 E.op1 E.op1 E.op1 E.op2
> [56] E.op2 E.op2 E.op2 E.op2 E.op2 F.op1 F.op1 F.op1 F.op1 F.op1 F.op1
> [67] F.op2 F.op2 F.op2 F.op2 F.op2 F.op2
> attr(,"scores")
> A.op1 B.op1 C.op1 D.op1 E.op1 F.op1 A.op2 B.op2 C.op2 D.op2 E.op2 F.op2
> 13.0 15.0 1.5 4.5 4.0 15.0 15.5 17.0 1.5 5.0 2.5 18.5
> 12 Levels: C.op1 C.op2 E.op2 E.op1 D.op1 D.op2 A.op1 B.op1 ... F.op2
>
>
> boxplot(count ~ bymedian, data = DF,
> xlab = "Interaction of spray and op", ylab = "Insect
count",
> main = "Modified InsectSprays Data", varwidth = TRUE,
> col = "lightgray")
>
>
> Regards,
>
> Marc Schwartz
>
>
[[alternative HTML version deleted]]