[R] Order output list od TukeyHSD function by "p adj"
David L Carlson
dcarlson at tamu.edu
Wed Feb 24 17:02:28 CET 2016
hsd.fit is list containing 1 element, a matrix called "wool:tension". It will be simpler if you extract the matrix and then use order() to get the matrix sorted by p adj:
> table <- hsd.fit[["wool:tension"]]
> table[order(table[, 'p adj']), ]
diff lwr upr p adj
A:L-B:H 25.7777778 10.471456 41.08410 0.0001136469
A:L-A:M 20.5555556 5.249234 35.86188 0.0029580438
A:L-A:H 20.0000000 4.693678 35.30632 0.0040954674
A:L-B:L 16.3333333 1.027012 31.63966 0.0302143219
A:L-B:M 15.7777778 0.471456 31.08410 0.0398172376
B:M-B:H 10.0000000 -5.306322 25.30632 0.3918766902
B:L-B:H 9.4444444 -5.861877 24.75077 0.4560949981
A:H-B:H 5.7777778 -9.528544 21.08410 0.8705571533
A:M-B:H 5.2222222 -10.084100 20.52854 0.9114780002
B:M-A:M 4.7777778 -10.528544 20.08410 0.9377205494
B:L-A:M 4.2222222 -11.084100 19.52854 0.9626540845
B:M-A:H 4.2222222 -11.084100 19.52854 0.9626540845
B:L-A:H 3.6666667 -11.639655 18.97299 0.9797122861
A:H-A:M 0.5555556 -14.750766 15.86188 0.9999978240
B:M-B:L 0.5555556 -14.750766 15.86188 0.9999978240
-------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77840-4352
-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Sergio Fonda
Sent: Wednesday, February 24, 2016 6:47 AM
To: Jim Lemon
Cc: r-help at r-project.org
Subject: Re: [R] Order output list od TukeyHSD function by "p adj"
Thank you Jim also for introducing a shorter data frame.
However the HSD output I deal with is derived from a crossing factors
condition.
Could you kindly explain how could I sort results obtained from a
fm1 <- aov(breaks ~ wool * tension, data = warpbreaks)
hsd.fit<-TukeyHSD(fm1, "wool:tension", ordered = TRUE)
which gives the following "crossing" output where "wool:tension" is a string
$`wool:tension`
diff lwr upr p adj
A:M-B:H 5.2222222 -10.084100 20.52854 0.9114780
A:H-B:H 5.7777778 -9.528544 21.08410 0.8705572
B:L-B:H 9.4444444 -5.861877 24.75077 0.4560950
B:M-B:H 10.0000000 -5.306322 25.30632 0.3918767
A:L-B:H 25.7777778 10.471456 41.08410 0.0001136
A:H-A:M 0.5555556 -14.750766 15.86188 0.9999978
B:L-A:M 4.2222222 -11.084100 19.52854 0.9626541
B:M-A:M 4.7777778 -10.528544 20.08410 0.9377205
A:L-A:M 20.5555556 5.249234 35.86188 0.0029580
B:L-A:H 3.6666667 -11.639655 18.97299 0.9797123
B:M-A:H 4.2222222 -11.084100 19.52854 0.9626541
A:L-A:H 20.0000000 4.693678 35.30632 0.0040955
B:M-B:L 0.5555556 -14.750766 15.86188 0.9999978
A:L-B:L 16.3333333 1.027012 31.63966 0.0302143
A:L-B:M 15.7777778 0.471456 31.08410 0.0398172
How may I order this part of results by "p adj" ?
Thank you again for your patience!
Sergio
2016-02-24 7:48 GMT+01:00 Jim Lemon <drjimlemon at gmail.com>:
> Hi Sergio,
> I couldn't get your example data to read in, so I have used the example in
> the help page:
>
> fm1 <- aov(breaks ~ wool + tension, data = warpbreaks)
> hsd.fit<-TukeyHSD(fm1, "tension", ordered = TRUE)
> hsd.fit$tension[order(hsd.fit$tension[,4]),]
> diff lwr upr p adj
> L-H 14.722222 5.3688015 24.07564 0.001121788
> L-M 10.000000 0.6465793 19.35342 0.033626219
> M-H 4.722222 -4.6311985 14.07564 0.447421021
>
> Obviously you would have to examine the output of TukeyHSD with str() to
> sort out which column to use for ordering.
>
> Jim
>
>
> On Wed, Feb 24, 2016 at 11:21 AM, Sergio Fonda <sergio.fonda99 at gmail.com>
> wrote:
>
>> Hello, It's already for several hours that I try to order the list
>> obtained by the function TukeyHSD according to the variable "p adj"
>> (in ascending order). Unfortunately, without success.
>> In addition to following two lines of code, that offer the result but
>> separately so do not correspond to the desired result, I was unable to
>> go:
>> DF.5 <-lapply(DF.4, function (x) as.data.frame(x[c("patient:Fold.fac")]))
>> DF.6 <- DF.5[[1]][order(DF.5[[1]]$patient.Fold.fac.p.adj),]
>> Please, I ask some help to answer these two questions:
>> 1) is it possible to get directly from the function TukeyHSD sorted
>> rows by "p adj"?
>> 2) or, may the output list from TukeyHSD() be processed (e.g. by
>> lapply) to sort its elements according to "p adj"?
>> I attach at bottom a simulation of a list obtained from TukeyHSD which
>> should be ordered by "p adj".
>> Thanks in advance for any suggestion!
>> Sergio
>> #
>> > dput(DF.4)
>> list(structure(list(patient = structure(c(12289274.0619908,
>> -2380308.48287107,
>> -14669582.5448618, -4176414.56676197, -18845997.1116238,
>> -31135271.1736146,
>> 28754962.6907435, 14085380.1458817, 1796106.0838909, 0.186808233632622,
>> 0.938592742253258, 0.0922160074633905), .Dim = 3:4, .Dimnames = list(
>> c("PARTIAL-COMPLETE", "NO-COMPLETE", "NO-PARTIAL"), c("diff",
>> "lwr", "upr", "p adj"))), Fold.fac = structure(c(-12697325.7957036,
>> -23938561.4288898, -1456090.1625174, 0.0268617694934425), .Dim = c(1L,
>> 4L), .Dimnames = list("middle-low", c("diff", "lwr", "upr", "p adj"
>> ))), `patient:Fold.fac` = structure(c(15369710.0977205, 6521960.91205235,
>> -4695802.45257667, 4502968.78925385, -16007472.7140147, -8847749.18566819,
>> -20065512.5502972, -10866741.3084667, -31377182.8117352, -11217763.364629,
>> -2018992.12279849, -22529433.626067, 9198771.24183052, -11311670.261438,
>> -20510441.5032685, -12927630.9811041, -21775380.1667723,
>> -33016252.8378897,
>> -23817481.5960591, -44327923.0993277, -37145090.2644928,
>> -48385962.9356102,
>> -39187191.6937797, -59697633.1970482, -39538213.749942, -30339442.5081115,
>> -50849884.01138, -19144769.6082929, -39655211.1115614, -48853982.353392,
>> 43667051.1765452, 34819301.990877, 23624647.9327363, 32823419.1745669,
>> 12312977.6712983, 19449591.8931564, 8254937.83501579, 17453709.0768463,
>> -3056732.42642223, 17102687.020684, 26301458.2625145, 5791016.75924596,
>> 37542312.0919539, 17031870.5886854, 7833099.34685487, 0.632098034657304,
>> 0.986399530577416, 0.997064140940244, 0.997595806079891,
>> 0.590366152539712,
>> 0.948510666498818, 0.330512619876425, 0.883673837089478,
>> 0.0198821692150445,
>> 0.868982868764254, 0.999952294188371, 0.207190890959777,
>> 0.939934594322161,
>> 0.86529009598038, 0.306625751897378), .Dim = c(15L, 4L), .Dimnames = list(
>> c("PARTIAL:low-COMPLETE:low", "NO:low-COMPLETE:low",
>> "COMPLETE:middle-COMPLETE:low",
>> "PARTIAL:middle-COMPLETE:low", "NO:middle-COMPLETE:low",
>> "NO:low-PARTIAL:low", "COMPLETE:middle-PARTIAL:low",
>> "PARTIAL:middle-PARTIAL:low",
>> "NO:middle-PARTIAL:low", "COMPLETE:middle-NO:low",
>> "PARTIAL:middle-NO:low",
>> "NO:middle-NO:low", "PARTIAL:middle-COMPLETE:middle",
>> "NO:middle-COMPLETE:middle",
>> "NO:middle-PARTIAL:middle"), c("diff", "lwr", "upr", "p adj"
>> )))), .Names = c("patient", "Fold.fac", "patient:Fold.fac"
>> ), class = c("TukeyHSD", "multicomp"), orig.call = aov(formula =
>> abundance ~
>> patient * Fold.fac, data = x), conf.level = 0.95, ordered = FALSE),
>> structure(list(patient = structure(c(11084928.3849924,
>> -3790273.898858,
>> -14875202.2838504, -2565656.8579769, -17440859.1418273,
>> -28525787.5268197,
>> 24735513.6279617, 9860311.34411127, -1224617.0408811,
>> 0.137587687259541,
>> 0.791659281224941, 0.028733410253219), .Dim = 3:4, .Dimnames = list(
>> c("PARTIAL-COMPLETE", "NO-COMPLETE", "NO-PARTIAL"), c("diff",
>> "lwr", "upr", "p adj"))), Fold.fac = structure(c(25003217.9525667,
>> 15683872.2084017, 34322563.6967316, 1.59282125378191e-07), .Dim =
>> c(1L,
>> 4L), .Dimnames = list("low-high", c("diff", "lwr", "upr",
>> "p adj"))), `patient:Fold.fac` = structure(c(6786144.11764773,
>> -14136208.8235292, 15255972.7140153, 30625682.8117357,
>> 21777933.6260674,
>> -20922352.9411769, 8469828.59636761, 23839538.6940879,
>> 14991789.5084197,
>> 29392181.5375445, 44761891.6352649, 35914142.4495966,
>> 15369710.0977203,
>> 6521960.91205206, -8847749.18566828, -16711562.4882314,
>> -37633915.4294083,
>> -8222591.1541805, 7147118.94353984, -1700630.24212845,
>> -44420059.547056,
>> -15008735.2718282, 360974.825892106, -8486774.35977618,
>> 5913617.6693487,
>> 21283327.767069, 12435578.5814008, -8089695.41243546,
>> -16937444.5981037,
>> -32307154.6958241, 30283850.7235268, 9361497.78234989,
>> 38734536.5822112,
>> 54104246.6799315, 45256497.4942632, 2575353.66470216,
>> 31948392.4645634,
>> 47318102.5622838, 38470353.3766155, 52870745.4057404,
>> 68240455.5034607,
>> 59392706.3177924, 38829115.6078761, 29981366.4222079,
>> 14611656.3244875,
>> 0.963180623746077, 0.521122619371869, 0.431445001590424,
>> 0.00280179326576413, 0.0869916657428951, 0.113173926329674,
>> 0.908231706478258, 0.0441523667992262, 0.451984651996765,
>> 0.00489618219443777, 9.080596613531e-07, 0.000195613055067767,
>> 0.42174023314457, 0.968747601969596, 0.891038899833401), .Dim = c(15L,
>> 4L), .Dimnames = list(c("PARTIAL:high-COMPLETE:high",
>> "NO:high-COMPLETE:high",
>> "COMPLETE:low-COMPLETE:high", "PARTIAL:low-COMPLETE:high",
>> "NO:low-COMPLETE:high", "NO:high-PARTIAL:high",
>> "COMPLETE:low-PARTIAL:high",
>> "PARTIAL:low-PARTIAL:high", "NO:low-PARTIAL:high",
>> "COMPLETE:low-NO:high",
>> "PARTIAL:low-NO:high", "NO:low-NO:high", "PARTIAL:low-COMPLETE:low",
>> "NO:low-COMPLETE:low", "NO:low-PARTIAL:low"), c("diff", "lwr",
>> "upr", "p adj")))), .Names = c("patient", "Fold.fac",
>> "patient:Fold.fac"
>> ), class = c("TukeyHSD", "multicomp"), orig.call = aov(formula =
>> abundance ~
>> patient * Fold.fac, data = x), conf.level = 0.95, ordered =
>> FALSE))
>> >
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
>
[[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.
More information about the R-help
mailing list