Ich habe einen Datenrahmen, der zwei Zeitreihen enthält: die Daten und Versionsnummern von Emacs und Firefox-Versionen. Mit einem einzigen ggplot2-Befehl ist es einfach, ein Diagramm zu erstellen, das Löss verwendet (auf eine Art, die ein bisschen amüsant aussieht, was mir nichts ausmacht), um die Punkte in Linien umzuwandeln.
Wie kann ich die Linien in die Zukunft verlängern? Ich möchte bestimmen, wo und wann sich die Versionsnummern von Emacs und Firefox kreuzen und ob es eine Möglichkeit gibt, einen Fehlerbereich anzuzeigen, umso besser.
Angesichts der Tatsache, dass ggplot2 die Linien zeichnet, muss es ein Modell haben, aber ich verstehe nicht, wie ich es anweisen soll, die Linien zu verlängern oder das Modell herauszuholen und etwas damit zu tun.
> library(ggplot2)
> programs <- read.csv("http://www.miskatonic.org/files/se-program-versions.csv")
> programs$Date <- as.Date(programs$Date, format="%B %d, %Y")
> head(programs)
Program Version Date
1 Emacs 24.1 2012-06-10
2 Emacs 23.4 2012-01-29
3 Emacs 23.3 2011-03-10
4 Emacs 23.2 2010-05-08
5 Emacs 23.1 2009-07-29
6 Emacs 22.3 2008-09-05
> head(subset(programs, Program == "Firefox"))
Program Version Date
18 Firefox 16 2012-10-09
19 Firefox 15 2012-08-28
20 Firefox 14 2012-06-26
21 Firefox 13 2012-06-15
22 Firefox 12 2012-04-24
23 Firefox 11 2012-03-13
> ggplot(programs, aes(y = Version, x = Date, colour = Program)) + geom_point() + geom_smooth(span = 0.5, fill = NA)
(Hinweis: Ich musste die frühen Firefox-Versionen fummeln und 0.1 auf 0.01 umstellen usw., weil "Punkt Eins" und "Punkt Zehn" rechnerisch gleich sind. Ich weiß, dass Firefox jetzt alle sechs Wochen veröffentlicht wird, aber es gibt sie nicht und ich bin an einer allgemeinen Antwort auf diese Vorhersagefrage interessiert.)