我试图将奥巴马的第一年支持率与特朗普在线图中的第一年支持率进行比较。
这里遇到的麻烦是我使用两年不同的奥巴马(2009年)和特朗普(2017年)。似乎无法弄清楚如何解决这个问题......
rating_comparison %>%
ggplot(aes(endDate, rating, group = 1)) +
geom_line(data = filter(rating_comparison,
endDate > "2017-01-28",
type == "Overall.A")) +
geom_line(data = filter(rating_comparison,
president == "Obama" &
endDate > "2009-01-25" &
endDate < "2010-01-24",
type == "Overall.A"))
答案 0 :(得分:2)
我将从您的代码中假设数据看起来像这样:
president startDate endDate rating type
Obama 2017-01-17 2017-01-19 59 Overall.A
Trump 2017-01-25 2017-01-27 42 Overall.A
我还假设日期列的类型为Date
。如果没有,请使用以下内容进行转换:
rating_comparison$endDate <- as.Date(rating_comparison$endDate, "%Y-%m-%d")
一种方法是由总统将每个日期转换为“自第一次约会以来的日期”。然后绘制评级与日。当然,这假设“第一次约会”在某种程度上具有可比性 - 我认为它们等同于每位总统的第一个投票日期。
例如,要由总统着色,限制在前365天:
library(dplyr)
library(ggplot2)
rating_comparison %>%
filter(type == "Overall.A") %>%
group_by(president) %>%
mutate(Day = as.numeric(endDate - min(endDate))) %>%
ungroup() %>%
filter(Day <= 365) %>%
ggplot(aes(Day, rating)) +
geom_line(aes(color = president))
我从网上获取了一些Gallup数据,与你的相似但不完全相同,以获得此结果: