[R] ggplot2-ddply question

Felipe Carrillo mazatlanmexico at yahoo.com
Fri Aug 7 22:56:08 CEST 2009



> On Aug 7, 2009, at 3:36 PM, Felipe Carrillo wrote:
> 
> > Hi all:
> > I am trying to use the ddply function to estimate the
> mean of 'Total','Fry','Smolt' and 'Fry.Eq' columns without
> success. I have the dput of my dataset below. I wonder if
> someone can give me a hand with this function.
> > 
> > # dput(winter)
> > winter <-structure(list(IDDate = structure(c(37L,
> 48L, 59L, 62L, 63L,
> > 64L, 65L, 66L, 67L, 38L, 39L, 40L, 41L, 42L, 43L, 44L,
> 45L, 46L,
> > 47L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L,
> 60L, 61L,
> > 68L, 79L, 90L, 93L, 94L, 95L, 96L, 97L, 98L, 69L, 70L,
> 71L, 72L,
> > 73L, 74L, 75L, 76L, 77L, 78L, 80L, 81L, 82L, 83L, 84L,
> 85L, 86L,
> > 87L, 88L, 89L, 91L, 92L, 99L, 110L, 121L, 123L, 124L,
> 125L, 126L,
> > 127L, 128L, 100L, 101L, 102L, 103L, 104L, 105L, 106L,
> 107L, 108L,
> > 109L, 111L, 112L, 113L, 114L, 115L, 116L, 117L, 118L,
> 119L, 120L,
> > 122L, 2L, 13L, 24L, 27L, 28L, 29L, 30L, 31L, 32L, 3L,
> 4L, 5L,
> > 6L, 7L, 8L, 9L, 10L, 11L, 12L, 14L, 15L, 16L, 17L,
> 18L, 19L,
> > 20L, 21L, 22L, 23L, 25L, 26L, 33L, 34L, 35L, 36L),
> .Label = c("",
> > "10/1/2008", "10/10/2008", "10/11/2008", "10/12/2008",
> "10/13/2008",
> > "10/14/2008", "10/15/2008", "10/16/2008",
> "10/17/2008", "10/18/2008",
> > "10/19/2008", "10/2/2008", "10/20/2008", "10/21/2008",
> "10/22/2008",
> > "10/23/2008", "10/24/2008", "10/25/2008",
> "10/26/2008", "10/27/2008",
> > "10/28/2008", "10/29/2008", "10/3/2008", "10/30/2008",
> "10/31/2008",
> > "10/4/2008", "10/5/2008", "10/6/2008", "10/7/2008",
> "10/8/2008",
> > "10/9/2008", "11/1/2008", "11/2/2008", "11/3/2008",
> "11/4/2008",
> > "7/1/2008", "7/10/2008", "7/11/2008", "7/12/2008",
> "7/13/2008",
> > "7/14/2008", "7/15/2008", "7/16/2008", "7/17/2008",
> "7/18/2008",
> > "7/19/2008", "7/2/2008", "7/20/2008", "7/21/2008",
> "7/22/2008",
> > "7/23/2008", "7/24/2008", "7/25/2008", "7/26/2008",
> "7/27/2008",
> > "7/28/2008", "7/29/2008", "7/3/2008", "7/30/2008",
> "7/31/2008",
> > "7/4/2008", "7/5/2008", "7/6/2008", "7/7/2008",
> "7/8/2008", "7/9/2008",
> > "8/1/2008", "8/10/2008", "8/11/2008", "8/12/2008",
> "8/13/2008",
> > "8/14/2008", "8/15/2008", "8/16/2008", "8/17/2008",
> "8/18/2008",
> > "8/19/2008", "8/2/2008", "8/20/2008", "8/21/2008",
> "8/22/2008",
> > "8/23/2008", "8/24/2008", "8/25/2008", "8/26/2008",
> "8/27/2008",
> > "8/28/2008", "8/29/2008", "8/3/2008", "8/30/2008",
> "8/31/2008",
> > "8/4/2008", "8/5/2008", "8/6/2008", "8/7/2008",
> "8/8/2008", "8/9/2008",
> > "9/1/2008", "9/10/2008", "9/11/2008", "9/12/2008",
> "9/13/2008",
> > "9/14/2008", "9/15/2008", "9/16/2008", "9/17/2008",
> "9/18/2008",
> > "9/19/2008", "9/2/2008", "9/20/2008", "9/21/2008",
> "9/22/2008",
> > "9/23/2008", "9/24/2008", "9/25/2008", "9/26/2008",
> "9/27/2008",
> > "9/28/2008", "9/29/2008", "9/3/2008", "9/30/2008",
> "9/4/2008",
> > "9/5/2008", "9/6/2008", "9/7/2008", "9/8/2008",
> "9/9/2008"), class = "factor"),
> >    Total = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 77, 0,
> >    0, 0, NA, NA, NA, 70, 0, 0, 55, 0, 52,
> 52, 0, 402, 170, 322,
> >    635, 197, 444, 206, 0, 210, 598, 2406,
> 2476, 1792, 1998.32,
> >    2235, 3184, 2897, 3325.59, 908.77, 2125,
> 2638.11, 5540, 11515,
> >    11703, 21135, 18770, 16686, NA, NA, NA,
> NA, 28385, 57310,
> >    53024, NA, NA, NA, NA, 34787, 28768,
> 25947, 23761, 18430,
> >    13080, 14094, 13638, 14748, 11564, 8076,
> 15123, 14192, 13648,
> >    14393, 19338, 25597, 26892, 28353, 18197,
> 18060, 11143, 13912,
> >    9915, 12240, 20541, 6643, 7408, 5511,
> 10797, 10706, 9654,
> >    6968, 4896, 4659, 5180, 4234.42, 5626,
> 3678, 2504, 1299,
> >    957.07, 2296, 2318, 1942.19, 2703.78,
> 5183, 4286, 3201, 2617,
> >    2118, 1633, 1740, 1791, 1023, 391,
> 884.97, 1214.5, 7927,
> >    8462), Fry = c(0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0,
> >    77, 0, 0, 0, NA, NA, NA, 70, 0, 0, 55, 0,
> 52, 52, 0, 402,
> >    170, 322, 635, 197, 444, 206, 0, 210,
> 598, 2406, 2476, 1792,
> >    1998.32, 2235, 3184, 2897, 3325.59,
> 908.77, 2125, 2638.11,
> >    5540, 11515, 11703, 21135, 18770, 16686,
> NA, NA, NA, NA,
> >    28385, 57090, 53024, NA, NA, NA, NA,
> 34405, 28563, 25947,
> >    23664, 18391, 13009, 13992, 13442, 14678,
> 11564, 8012, 15123,
> >    13990.16, 13372.5, 14205, 18687,
> 25003.66, 25927, 27596,
> >    17755, 17438, 10630.83, 12879, 9389,
> 11882, 19368, 5936,
> >    6182, 4462, 7606, 7933.89, 7010, 5052,
> 3199, 2894, 2395,
> >    1253, 1994, 1180.62, 1024, 520, 410, 923,
> 547, 448, 674,
> >    902, 1085, 559, 694, 200, 40, 41, 162.43,
> 0, 0, 88.09, 0,
> >    79, 243), Smolt = c(0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0,
> >    0, 0, 0, 0, 0, NA, NA, NA, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0,
> >    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0,
> >    0, 0, 0, 0, 0, 0, NA, NA, NA, NA, 0, 220,
> 0, NA, NA, NA,
> >    NA, 382, 204.45, 0, 98, 39, 70.74,
> 102.45, 196, 70, 0, 64,
> >    0, 201.6, 276, 188, 650, 594, 965, 757,
> 442, 622, 512, 1033,
> >    526, 357, 1173, 707, 1226, 1049, 3192,
> 2772, 2644, 1916.03,
> >    1697.59, 1765.08, 2785.12, 2981, 3632,
> 2497, 1480, 778.94,
> >    547.27, 1373, 1771, 1495, 2030, 4281,
> 3200, 2642.26, 1922.53,
> >    1918, 1593, 1699, 1628, 1023, 391,
> 796.88, 1214.5, 7847,
> >    8219), Fry.Eq = c(0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0,
> >    0, 77, 0, 0, 0, NA, NA, NA, 70, 0, 0, 55,
> 0, 52, 52, 0, 402,
> >    170, 322, 635, 197, 444, 206, 0, 210,
> 598, 2406, 2476, 1792,
> >    1998.32, 2235, 3184, 2897, 3325.59,
> 908.77, 2125, 2638.11,
> >    5540, 11515, 11703, 21135, 18770, 16686,
> NA, NA, NA, NA,
> >    28385, 57464, 53024, NA, NA, NA, NA,
> 35055, 28911, 25947,
> >    23830, 18457.87, 13129, 14166, 13775.76,
> 14797, 11564, 8121,
> >    15123, 14333, 13841, 14524, 19793, 26013,
> 27567, 28883, 18506.87,
> >    18494.87, 11502, 14635, 10283, 12490,
> 21362, 7138, 8267,
> >    6245, 13032, 12646.37, 11505, 8309, 6085,
> 5894.51, 7129.24,
> >    6321, 8168, 5425, 3540.31, 1844.04, 1340,
> 3257, 3557, 2988,
> >    4125, 8180, 6526, 5051, 3962, 3461, 2748,
> 2929, 2931, 1739,
> >    665, 1443, 2065, 13420, 14216), IDWeek =
> c(27L, 27L, 27L,
> >    27L, 27L, 27L, 27L, 27L, 28L, 28L, 28L,
> 28L, 28L, 28L, 28L,
> >    29L, 29L, 29L, 29L, 29L, 29L, 29L, 30L,
> 30L, 30L, 30L, 30L,
> >    30L, 30L, 31L, 31L, 31L, 31L, 31L, 31L,
> 31L, 32L, 32L, 32L,
> >    32L, 32L, 32L, 32L, 33L, 33L, 33L, 33L,
> 33L, 33L, 33L, 34L,
> >    34L, 34L, 34L, 34L, 34L, 34L, 35L, 35L,
> 35L, 35L, 35L, 35L,
> >    35L, 36L, 36L, 36L, 36L, 36L, 36L, 36L,
> 37L, 37L, 37L, 37L,
> >    37L, 37L, 37L, 38L, 38L, 38L, 38L, 38L,
> 38L, 38L, 39L, 39L,
> >    39L, 39L, 39L, 39L, 39L, 40L, 40L, 40L,
> 40L, 40L, 40L, 40L,
> >    41L, 41L, 41L, 41L, 41L, 41L, 41L, 42L,
> 42L, 42L, 42L, 42L,
> >    42L, 42L, 43L, 43L, 43L, 43L, 43L, 43L,
> 43L, 44L, 44L, 44L,
> >    44L, 44L, 44L, 44L), ID.Month = c(7L, 7L,
> 7L, 7L, 7L, 7L,
> >    7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
> 7L, 7L, 7L, 7L, 7L,
> >    7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
> 8L, 8L, 8L, 8L, 8L,
> >    8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L,
> 8L, 8L, 8L, 8L, 8L,
> >    8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L,
> 8L, 9L, 9L, 9L, 9L,
> >    9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
> 9L, 9L, 9L, 9L, 9L,
> >    9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
> 9L, 10L, 10L, 10L,
> >    10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
> 10L, 10L, 10L, 10L,
> >    10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
> 10L, 10L, 10L, 10L,
> >    10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L)),
> .Names = c("IDDate",
> > "Total", "Fry", "Smolt", "Fry.Eq", "IDWeek",
> "ID.Month"), row.names = c(NA,
> > 127L), class = "data.frame")


> Instead perhaps:
> 
> ddply(winter[, -c(1,7)],.(IDWeek),mean, na.rm=TRUE)

Thanks David, That worked like a charm, I also found the colwise function and made it work without removing the first and last columns:
ddply(winter,.(IDWeek),
colwise(mean,c("Total","Fry","Smolt","Fry.Eq")),na.rm=T)

> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
> 
> 







More information about the R-help mailing list