ฉันมีกรอบข้อมูลที่มีสองชุดเวลา: วันที่และหมายเลขรุ่นของ Emacs และ Firefox ที่วางจำหน่าย การใช้หนึ่งคำสั่ง ggplot2 ทำให้ง่ายต่อการสร้างแผนภูมิที่ใช้เหลือง (ในลักษณะที่ดูน่าขบขันซึ่งฉันไม่สนใจ) เพื่อเปลี่ยนจุดให้เป็นเส้น
ฉันจะขยายสายไปสู่อนาคตได้อย่างไร? ฉันต้องการตรวจสอบว่าหมายเลขรุ่น Emacs และ Firefox จะข้ามเมื่อใดและหากมีวิธีที่จะแสดงช่วงข้อผิดพลาดจะดีกว่าทั้งหมด
เนื่องจาก ggplot2 กำลังพล็อตบรรทัดมันต้องมีโมเดล แต่ฉันไม่เห็นวิธีบอกให้ขยายบรรทัดหรือเพื่อเอาโมเดลออกมาและทำอะไรกับมัน
> 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)
(หมายเหตุ: ฉันต้องทำให้เหลวไหล Firefox รุ่นแรก ๆ และเปลี่ยน 0.1 เป็น 0.01 เป็นต้นไปเพราะ "จุดหนึ่ง" และ "จุดสิบ" เท่ากับเลขคณิตฉันรู้ว่า Firefox กำลังเปิดตัวทุกหกสัปดาห์ในขณะนี้ แต่ไม่มีอยู่จริง แต่และฉันสนใจคำตอบทั่วไปสำหรับคำถามทำนายผลนี้)