[R] Add Anova statistics in each figure

Kristi Glover kristi.glover at hotmail.com
Sun Jul 30 20:28:09 CEST 2017


Hi R Users,

I created interaction plots in ggplot2 and  was trying to add output of two way ANOVA  models, especially only interaction  ( example treatment*control F(XX, XX) = xxx, p = xxx) into figures, but i was not able to add. Would you mind to help on how I can add information into each figure? I have attached the example data and the code that I used for this.


dat<-structure(list(Sites = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,

1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,

2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Site1", "Site2"), class = "factor"),

    Period = structure(c(2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L,

    1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,

    2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L,

    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L,

    1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L,

    2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L,

    2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L,

    2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L,

    1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L,

    2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L,

    2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L,

    1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L,

    1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L,

    2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,

    2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,

    1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L,

    1L, 1L, 1L), .Label = c("After", "Before"), class = "factor"),

    Group = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,

    2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

    2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L,

    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,

    2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L,

    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,

    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,

    2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,

    1L, 1L), .Label = c("Control", "Treatment"), class = "factor"),

    Env1 = c(-23.99, 0, -23.4, -24.77, 4.92, 4.94, 4.96, 4.93,

    4.97, 4.99, 5.06, -12.12, 5.2, 0, 0, 5.07, 5.09, 0, 5.07,

    0, 5, 0, -27.63, 4.44, 0, 0, 0, 4.33, 4.33, 0, 5.07, 5.07,

    5.03, 5.01, 0, 0, 4.97, 0, 4.98, 5.07, 0, 5.08, 0, 0, 4.91,

    -35.98, 0, 0, 0, 5.2, 0, 4.89, 5.07, 0, 4.96, 4.86, 4.96,

    0, 4.95, 5.07, 0, 0, -34.07, 5.06, 4.98, 4.94, 0, 4.95, 5.07,

    0, 0, 0, -38.32, -31.91, -29.75, 0, 0, 4.69, 4.48, 0, 0,

    4.57, 4.78, 0, 0, 4.74, 5.02, 4.87, 0, 0, 0, 4.65, -52.2,

    0, -32.11, 5.05, 0, 5.03, 5.13, 0, 0, 0, -33.75, 4.84, 4.74,

    0, 4.82, -32.98, 5.04, 0, 0, 4.95, 5.18, 5.18, 0, 0, 4.57,

    4.84, 4.74, 0, 4.78, 0, 4.78, 4.36, 4.45, 3.68, 0, 4.16,

    4.61, 0, 4.63, 0, 0, -28.65, 4.96, 4.42, 0, 0, 0, 0, 0, 4.89,

    4.96, 4.93, 0, 0, 4.96, 0, 0, 0, 0, 4.42, 0, 0, 0, 4.82,

    0, 0, 0, -34.71, 0, 4.59, 0, 4.86, 0, 0, 4.75, 0, 0, 4.65,

    4.8, 0, 0, 4.87, 4.86, 0, 0, 0, 4.83, 0, 4.85, 0, 4.48, 4.38,

    0, 0, 4.53, 0, 4.79, 0, 0, 0, 4.7, 0, 4.84, 0, 0, 0, 4.35,

    4.72, 4.72, 4.65, 4.65, 4.39, 4.73, 4.62, 0, 4.76, 0, 5,

    0, 4.86, 0, -13.38, 0, 4.73, 0, 0, 0, 4.58, 4.76, 0, 0, 0,

    0, 4.68, 4.74, 0, 0, 0, 4.83, 0, 0, 0, 0, 0, 0), Env2 = c(-5.89,

    0, -4.13, -8.88, 2.79, -0.31, -1.21, -3.72, -0.52, -6.52,

    -10.28, -0.27, -21.27, 0, 0, -5.62, -11.49, 0, -4.85, 0,

    -0.8, 0, -5.4, 0.63, 0, 0, 0, -10.92, -9.41, 0, -9.62, -9.15,

    -4.32, -5.63, 0, 0, -6.07, 0, -3.34, -11.85, 0, -10.36, 0,

    0, -5.29, 3, 0, 0, 0, -16.94, 0, 1.47, -8.51, 0, -3.07, -3.51,

    -4.79, 0, -2.11, -20.19, 0, 0, -9.91, -16.85, -1.4, -3.96,

    0, -3.83, -7.14, 0, 0, 0, -1.58, -2.42, -1.56, 0, 0, 4.45,

    23.76, 0, 0, 15.1, 5.86, 0, 0, 8.26, -9.56, 6.43, 0, 0, 0,

    -1.93, 7.2, 0, 0.39, -6.75, 0, -4.4, -9.39, 0, 0, 0, 2.41,

    3.23, 2.71, 0, -1, -3.54, -7.19, 0, 0, -5.68, -13.39, -15.14,

    0, 0, 0.8, 7.74, 5.58, 0, -7.4, 0, 2.63, 10.5, 8.66, 4.49,

    0, 4.87, 16.63, 0, 9.14, 0, 0, 24.56, -8.22, 5.91, 0, 0,

    0, 0, 0, -8.03, -7.54, -1.83, 0, 0, 0.67, 0, 0, 0, 0, 7.6,

    0, 0, 0, -4.54, 0, 0, 0, -5.3, 0, 3.09, 0, 1.35, 0, 0, 12.39,

    0, 0, 3.66, 5.77, 0, 0, 6, 3.98, 0, 0, 0, -2, 0, 0.99, 0,

    10.58, 7.31, 0, 0, 5.32, 0, 9.73, 0, 0, 0, 7.23, 0, 8.53,

    0, 0, 0, 22.69, 0.22, 8.5, 15.74, 13.91, 17.44, 14.93, 13.69,

    0, -6.28, 0, -5.07, 0, -2.03, 0, 3.01, 0, 11.02, 0, 0, 0,

    16.53, 7.34, 0, 0, 0, 0, -8.31, 3.31, 0, 0, 0, -2.33, 0,

    0, 0, 0, 0, 0)), .Names = c("Sites", "Period", "Group", "Env1",

"Env2"), class = "data.frame", row.names = c(NA, -237L))


long<-melt(dat, id=c('Sites', 'Period', 'Group'))

head(long)

df<-ddply(long, c("Period", "Group","variable"), summarise,

N    = length(value),

mean = mean(value, na.rm=TRUE),

sd   = sd(value, na.rm=TRUE),

se   = sd / sqrt(N))

df$Period1 <- factor(df$Period, levels=c("Before", "After"))

gp <- ggplot(df, aes(x=Period1, y=mean, colour=Group, group=Group))

gp<-gp + geom_line(aes(linetype=Group), size=.6) +

     geom_point(aes(shape=Group), size=3) +

     geom_errorbar(aes(ymax=mean+se, ymin=mean-se), width=.1)

gp+facet_grid(.~variable)


###two way anova interactions analysis

# since I do have

long$newFactor<-paste(long$Sites,long$variable)

models <- dlply(long, "newFactor", function(df)

  lm(value ~ Group*Period, data = long))

summary(models)

But I could not  add the information of the interaction (F and its P values) in each above figures. Would you mind to hep me. It will be highly appreciated.
Thanks


	[[alternative HTML version deleted]]



More information about the R-help mailing list