2012-11-23 1 views
3

Mon problème est que je voudrais créer un graphique avec des valeurs moyennes et un écart-type.Ajouter une droite de régression à plot (plotmeans)

J'ai trouvé la fonction plotmeans dans le paquet gplots et maintenant je voudrais ajouter une courbe de tendance à ce graphique. J'essaye de faire ceci avec abline mais cela ne fonctionne pas. Je serais vraiment reconnaissant pour de l'aide.

Mes données ressemble à ceci:

year <- c(2004, 2004, 2004, 2005, 2005, 2005, 2006, 2006, 2006, 2007, 2007, 2007, 2008, 2008, 2008, 2009, 2009, 2009) 
value <- c(116,114,115,110,110,109,100,99,102,95,96,95,90,91,94,70,71,73) 
df <- data.frame(year, value); head(df) 
library(gplots) 

plotmeans(value ~ year, data= df, p = 0.99, connect= FALSE) 
abline(h=c(100), col= "blue", lty= 2) 
abline(lm(value ~ year, data= df)) 

fonctionne donc la première abline OK, mais la ligne de lm non.

Répondre

5

Dans le graphique, les valeurs sur l'axe des abscisses sont recodées en tant que niveaux de facteur. C'est pourquoi vous devez transformer year en un facteur et utiliser ses valeurs numériques. Le résultat est utilisé pour la fonction lm.

df$year2 <- as.numeric(factor(year))  

library(gplots) 
plotmeans(value ~ year, data= df, p = 0.99, connect= FALSE) 
abline(h=c(100), col= "blue", lty= 2) 
abline(lm(value ~ year2, data= df)) 

enter image description here

+0

Merci pour cette réponse rapide! – Eco06

Questions connexes